面试总共分为 。一面为技术面 ,侧重于八股基础 ;二面为技术面 ,侧重于项目细节和场景题考验 ;三面为技术面 ,侧重于八股基础 ;四面为HR面 。一面:面试内容:1.垃圾回收器,cms2.垃圾回收机制3.Redis,单线程模型结构,阻塞,Zset,哨兵模式,大 Key 问题会影响内存性能吗4.MQ 使用场景5.Spring 循环依赖,有没有遇到过,怎么定位,怎么解决6.Maven 传递依赖,有什么具体的问题7.Spring MVC手撕代码:反转链表面试体验:一面对项目不做深挖,主要考查八股,除了以上问题以外数据库问的也多,但都是比较常见的点,如mvcc、索引、事务等问题。二面:面试内容:1.项目难点2.拦截器用的是Spring还是Servlet3.SpringAOP拦截器什么情况下会失效4.JDK和CGLIB区别5.ThreadLocal具体什么情况下取加密字段6.如果字段被拦截了怎么办,怎么保证安全性,网关层面做了加密,那如果让你来加密,你会怎么做7.场景图:如果要设计一个定时器,用什么数据结构8.算法:字符串转Integer,遇到超出范围的数据怎么办,数据越界怎么办 面试体验:压力最大的一面,对应的面试官所在的组应该就是最终的组。二面基本不问寻常八股,都是从项目的角度延伸开来问问题,我的项目的亮点是拦截器方案的改进,所以就针对这部分做深入挖掘。场景题没有标准答案,答数组、堆等都可以,但会针对这种数据结构里面的缺陷和某种场景反问,让你一步一步打补丁修正答案,最后提出了时间轮的数据结构概念。三面:面试内容:1. Transactional注解什么时候会失效?基于原理2. binlog 什么用途3. jvm,分为哪几个区域,哪个区域会发生内存溢出4. hashmap 源码看过吗,扩容原理,扩容过程5. 什么情况下,走不到索引上6. 怎么定位线程死锁,怎么解决7. 线程池,常见参数,工作队列的大小怎么定,线程数怎么定面试体验:三面像交叉面,没有深入问之前的问题,还是以检验基础八股为主,时间较短,没有手撕。四面:面试内容:1. 自我介绍2. 职业规划3. 为什么偏向于选择支付方向4. 目前手头有哪些offer,签约了吗面试体验:常规HR面,没有开摄像头。