贝壳面经(一面+二面+HR面,8/22号)
一面(57min)
22号上午11:00开始的,一面主要问了基础知识,问的面很广,照着简历问,写了的基本都问了。手撕了一个单例模式的双重检查锁。
- 自我介绍
- 跟技术相关的社团活动
- 有过实习吗?介绍一下?
- TCP的三次握手?为什么是三次?两次可不可以?
- 了解的设计模式?模板方法详细介绍一下?策略模式?
- 代码:写一个线程安全的单例模式
- volatile的底层原理?可见性、禁止指令重排?
- ThreadLocal?
- 类加载的过程?双亲委派模型?
- redis的持久化?优缺点?
- redis的单线程原理?
- 分布式锁如何实现?redis实现的分布式锁的几个问题都被详细问到?set保证原子性?守护线程的作用?删锁的原子性?如何保证不删除别人的锁?
- zookeeper如何实现分布式锁?
- mysql如何去重?还有其他的方式吗?返回一条语句的时候,是返回哪条数据?比如现在有三个学生的成绩都是80分,现在查询一位成绩为80分的人,那么会返回哪一个人的数据?【没有懂这个问题到底想问啥】
- 数据库的隔离级别?
- 脏读?不可重复读?幻读?
- 索引失效的情况?
- 行锁和表锁?
- JVM的运行时数据区?
- 堆区的垃圾回收?回收算法、回收器?
- 为什么本科和硕士没有去实习?
二面:(30min)
一面结束立马就收到二面的通知。面试官能看到一面的问题,觉得问的挺多的了,就说稍微问几个基础问题,主要问问项目和一些场景题。
面试官一直强调一面的手撕代码太简单😂😂😂😂,当时怕面试官会给我出什么难题,把人吓的不行!最后也只是让写了个构建乘积数组的问题,用暴力写的。
- 自我介绍
- 把自己的项目详细介绍一下
- 项目中有什么难点,自己是怎么解决的
- 介绍一下社团活动,自己主要做了些什么
- synchronize的原理?效率怎么样?锁升级过程?和lock的区别?
- 场景题:假如现在有一个电话号码,让你判断该电话号码是否存在数据库中,而且要求该电话号码是最近三个月插入的?如何在十几毫秒的时间里得到结果?【开始说了个建立联合索引去查,被否定了,说耗时太多。后面提了用redis缓存三个月的电话号码,如果超时则淘汰。面试官说可以】
- 代码:构建乘积数组【剑指offer 66题】自己暴力写的,让我想想有没有其他办法,数组中可能有0。也没想出来
- 提问:公司的技术栈?主要工作任务?微服务解决方案的选择?
三面HR (30min)
二面结束就收到HR面通知,以为是直接开始,赶紧进去等着。等了半天发现没有上线,去邮箱一看,原来约的是下午两点的。
两点开始面,HR问的问题都是常见问题。说提前批人很多,结果可能会晚点反馈,让耐心等待一下。
- 一二面面得怎么样?
- 对贝壳有了解?贝壳APP, 刚上市
- 自己投了哪些公司?能提前来实习吗?
- 介绍自己的实习项目吗?自己的角色?最大的挑战是什么?
- 自己平时是怎么学习并应用的?
- 除了项目之外,还有其他的什么安排?
- 自己的优势?
- 手上有其他公司的offer吗?在流程里的有哪些?
- 反问:新员工的培训?晋升路径?