谢飞机大厂面试记从“懂王”到“回家等通知”的Java进阶之路场景背景地点某互联网大厂鹅厂/猪厂/猫厂30楼会议室人物面试官大厂资深架构师发际线略高眼神犀利手握一杯冰美式。谢飞机自称“精通Java”实则靠背八股文混日子的水货程序员擅长强行解释。第一轮集合与多线程的“开胃菜”面试官飞机是吧先从基础开始。说说 ArrayList 和 LinkedList 的区别业务中怎么选谢飞机这题我会ArrayList 底层是数组数组知道吧就像排队查起来贼快LinkedList 底层是链表就像老鹰抓小狗一个扯着一个增删快。随机查得多用 ArrayList增删多用 LinkedList面试官微微点头不错那 ArrayList 是怎么扩容的谢飞机默认大小是10不够用了就扩容到原来的1.5倍。旧数组 copy 到新数组简单粗暴面试官好进入并发。线程池ThreadPoolExecutor的核心参数有哪些如果队列满了且达到最大线程数新任务怎么办谢飞机核心参数有核心线程数、最大线程数、小卖部等待区阻塞队列、保活时间... 至于任务怎么办那简单啊如果都满了我就把任务扔了或者直接让报错让老板知道服务器该加钱了面试官眼角微抽我是问具体的拒绝策略。谢飞机拒绝策略就是...“我太累了谁爱干谁干”或者“哪来的回哪去”。第二轮Spring 与 Redis 的“中场博弈”面试官行吧聊聊 Spring。说下 Bean 的生命周期以及循环依赖是怎么解决的谢飞机Bean 的生命周期就像人的一生出生实例化、起名属性填充、上学初始化、干活使用、退休销毁。循环依赖嘛Spring 有三级缓存就像三道防火墙A 找 BB 找 A中间搞个临时工顶一下就行了。面试官略显赞许三级缓存理解得还可以。那 Redis 呢Redis 为什么快如果出现“缓存击穿”你会怎么处理谢飞机Redis 快是因为它是内存操作而且是单线程没有那些多线程抢厕所锁竞争的事儿。至于缓存击穿那一定是那个 Key 太火了就像热搜。处理办法就是... 给这个 Key 磕个头或者把它的过期时间设置成一万年直到地球爆炸面试官吸了一口冰美式我们通常用互斥锁或者逻辑过期。那 Redis 的数据类型你用过哪些谢飞机String、Hash、List、Set、ZSet我一般全用 String万物皆可 String第三轮架构、MySQL 与分布式“终极裁决”面试官MySQL 索引为什么用 B 树而不是红黑树事务的隔离级别有哪些谢飞机B 树它长得胖啊又矮又胖一层能放好多数据磁盘 IO 就少。红黑树太瘦太高了找个数据得爬半天楼。隔离级别有读未提交、读已提交、可重复读、串行化。默认是可重复读就像我每天面试的内容重复得我想哭。面试官分布式场景下如何保证数据一致性比如 Seata 的 AT 模式原理谢飞机Seata是那个唱歌的吗分布式一致性好办我一般在代码里写个synchronized再不行就给数据库加个大锁谁也别想动面试官...那 DDD领域驱动设计你了解吗怎么划分领域谢飞机DDD是不是“滴滴滴”划分领域我知道按部门划呗后端管后端的前端管前端的保洁阿姨管垃圾桶这就是领域驱动面试官放下咖啡露出职业微笑飞机啊你的想法非常... 具有跳跃性。今天的面试就到这里你先回家等通知吧后续人事会联系你。谢飞机兴奋地起身好嘞那我是不是稳了面试官您慢走技术干货解析小白必看1. 线程池拒绝策略RejectedExecutionHandler当线程池的任务缓存队列已满且线程数达到 maximumPoolSize 时会触发拒绝策略AbortPolicy默认丢弃任务并抛出 RejectedExecutionException 异常。DiscardPolicy直接丢弃任务不抛异常。DiscardOldestPolicy丢弃队列中最前面的任务尝试再次提交当前任务。CallerRunsPolicy由调用者线程如主线程处理该任务减缓提交速度。2. Redis 缓存击穿 vs 雪崩 vs 穿透击穿单个热点 Key 过期大量请求瞬间直达数据库。解决设置热点数据永不过期或加互斥锁。雪崩大量 Key 同时过期。解决过期时间加随机抖动。穿透查询不存在的数据。解决布隆过滤器或缓存空对象。3. MySQL B 树的优势B 树非叶子节点只存储索引不存储数据因此单个节点能容纳更多索引树的高度更低通常 3-4 层可支撑千万级数据。叶子节点之间有双向链表极大地提高了范围查询的效率。4. Spring 三级缓存解决循环依赖一级缓存成品 Bean。二级缓存半成品 Bean已实例化未初始化。三级缓存Lambda 表达式工厂用于处理 AOP 代理对象的提前暴露。注意构造器注入的循环依赖无法通过三级缓存解决。5. 什么是 DDD领域驱动设计DDD 是一种架构思想核心是边界上下文。它主张将复杂的业务逻辑拆分为核心域核心竞争力。支撑域/通用域辅助功能。 通过聚合根、实体、值对象来组织代码解决软件架构随时间推移而变得混乱大泥球的问题。