一面
1、自我介绍;
2、介绍自己做的项目;
3、说一说项目中最有难度和记忆最深刻的项目;
4、说说Hashmap 原理;
5、底层红黑树是什么?
6、ArrayList 与 LinkedList的区别?
7、ArrayList 扩容的过程是什么样子的?
8、常用排序算法和时间复杂度;
9、快排的实现原理:双指针,建议在纸上自行手写实现,这样才容易记牢;
10、Kafka 事务处理机制;
11、Kafka 消息重复消费如何处理?
12、Kafka 如何保证消息的可靠性?
13、线上FullGC 处理方法;
14、垃圾回收介绍一下;
15、多进程和多线程有什么区别?
16、类加载机制;
17、开发过程中关于规范的代码有什么好的可以分享?
18、Spring 解决循环依赖;
一面相对来说是比较偏技术细节的,从语言本身到 JVM,再到框架和工具都有涉及。
二面
1、介绍自己,并介绍一下自己做的项目?
2、自己主要负责哪块内容,其中印象最深刻的项目是什么?
3、项目中遇到的最难的问题是什么,怎么解决的?
4、项目在生产上有没有遇到过问题,是什么样子的问题以及如何解决的?
5、有没有因为 bug 或者其他原因导致的线上问题?
6、HashMap 与 ConcurrentHashMap的区别?
7、线程池的实现原理;
8、说一下 JVM 有哪些垃圾回收器?
9、详细介绍一下 CMS 垃圾回收器?
10、新生代垃圾回收器和老年代垃圾回收器都有哪些?它们有什么区别?
11、简述分代垃圾回收器是怎么工作的?
12、GC 垃圾回收器的理解;
13、对SQL 优化有什么建议?
14、Kafka 的基本组件和消息流程;
15、使用 Redis 如何实现一个分布式锁?
16、你觉得工作这么久,自己对业务有什么重大的贡献?
17、项目小组有多少人,个人觉得自己在小组中是什么样的位置?
18、工作这么久觉得业务上有什么缺陷,怎么优化?
19、是否有参与项目架构的讨论和设计?
20、业余时间一般做些什么?
21、既然你有 Github 账号,那么你GitHub 上印象最深刻的项目是什么?
二面考察的是各方面的能力,包括项目经历、设计能力、沟通能力以及学习能力。
全部评论
(1) 回帖