首页 简历|笔试面试

贝壳秋招面经(完结)

  • 25年9月4日 发布
  • 11.87KB 共3页
贝壳秋招面经(完结)贝壳秋招面经(完结)贝壳秋招面经(完结)

贝壳秋招面经(完结)

同学 1

一面 14:37(34min)

详细答案:https://mp.weixin.qq.com/s/aQyflChyLH72o_6XzduwPg

• 自我介绍

• 项目

• ThreadLocal,使用场景,原理

• ArrayList,讲讲其他的 List

• ArrayList 线程安全版本的容器

• HashMap 原理

• ConcurrentHashMap 原理

• Spring 用了什么设计模式

• bean 生命周期

• bean 是单例还是多例的,具体怎么修改

• 为什么用 b+树不用 b 树

• 联合索引 (a, b),where a = 1 和 where b = 1,效果是一样的吗

• 事务 ACID

• 慢查询怎么分析

• explain 分析后, type 的执行效率等级,达到什么级别比较合适

• 设计一个秒杀场景

• 消息队列

• 手撕:3 个线程交替打印 1-100(伪代码就可以)

– 怎么让 main 线程等待这 3 个线程执行完再执行

答案

可以使用 synchronized 和 wait/notify 来控制线程交替执行。同时,可以使用

Thread.join() 方法来让 main 线程等待这 3 个线程完成。

三个线程交替打印:

PrintTask 实现了 Runnable 接口,定义了线程执行的任务逻辑。

每个线程有一个唯一的 threadId,用来控制轮次(0、1、2)。

通过 number % 3 == threadId 判断是否是当前线程的轮次。如果是,则打印并递增

number,然后调用 notifyAll() 唤醒其他线程。

如果不是当前线程的轮次,调用 wait() 进入等待状态,等待其他线程唤醒。

让 main 线程等待 3 个线程完成:使用 Thread.join() 方法让 main 线程等待 t1、t2 和 t3 执

行完毕后再继续执行。

• go 在什么场景下使用

• 反问

一面比较基础,面完 10 分钟发了二面邮件。

二面 15:49(28min)

• 自我介绍

• 实习项目

• NIO

• select、poll、epoll

• SpringBoot 和 Spring 区别

• AOP 实现方式

• JDK 动态代理,不实现接口就不能做代理了吗,为什么

• bean 生命周期

• 看过 Spring 和 SpringBoot 的源码吗

• Spring 循环依赖

• MyBatis 传参有哪几种方式,有什么区别

• 手撕:单例模式

• 设计原则

• Java 为什么不可以多继承

• MySQL 表里有 5 亿的数据,分页查询怎么实现

• 在地图上有一些点,我想用一个圆框柱这些点,怎么让这个圆 圈住更多的点?

• 微服务优缺点

• 你现在有面试其他公司吗?面到第几轮?

• csdn 的文章都是自己写的吗

• 反问

二面问的比较有深度,面完 5 分钟发了 HR 面邮件。

HR 面 16:44(13min)

• 自我介绍

• 上一段实习主语言是 go,为什么不投我们这边 go 的岗位

• 对互联网岗位的意向,原因

• 职业规划

• 期望工作城市

• 和一二面面试官聊的怎么样

• 对贝壳了解吗

• 可以提前实习吗

• 之前实习加班多吗

• 别的公司面试情况怎么样

• 选择 offer 会看哪几方面

开通会员 本次下载免费

所有资料全部免费下载! 推荐用户付费下载获取返佣积分! 积分可以兑换商品!
一键复制 下载文档 联系客服