W2 面试备战周总结:MySQL 锁机制与 JVM 并发容器底层底层连环追问速查

发布时间:2026/9/13 16:28:24
W2 面试备战周总结:MySQL 锁机制与 JVM 并发容器底层底层连环追问速查 W2 面试备战周总结MySQL 锁机制与 JVM 并发容器底层底层连环追问速查在过去一周的大厂模拟面试备战专栏中我们集中火力穿透了后端核心底座中考察深度最深、连环追问最密集的三大“大杀器”考点Redis 单线程与 Linuxepoll多路复用内核机制MySQL 聚簇/二级索引、覆盖索引、Next-Key Lock 加锁规则与间隙锁死锁JavaHashMap位运算与ConcurrentHashMapJDK 8 CAS协同扩容底层。很多同学在面对面试官步步紧逼的“连环追问Follow-up Questions”时容易慌乱。今天我们把这三大核心技术模块的高频连环追问因果链与答题话术做一次系统性的终极速查串联。模块一Redis 高性能与 Linuxepoll内核连环问答链[追问 1] Redis 是单线程还是多线程为什么单线程能支撑 10W QPS ├── 回答要点纯物理内存纳秒级操作 无锁单线程消除上下文切换与竞争 epoll I/O 多路复用。 └── [追问 2] epoll 相比 select / poll 在内核底层有何本质不同 ├── 回答要点select 采用 1024 线性位图每次全量拷贝轮询 (O(N))epoll 采用红黑树管理监听 fd 双向就绪链表 (rdlist) 网卡硬件中断回调 (O(1))仅拷贝活跃连接。 └── [追问 3] Redis 6.0 引入的多线程到底多线程做了什么核心命令执行变成多线程了吗 └── 回答要点绝对不是多线程仅负责并发从 Socket 读取数据、解析网络协议包及写回响应核心内存数据结构的增删改查依然由单主线程严格串行执行兼顾多核 I/O 吞吐与零锁并发安全。模块二MySQL 索引物理存储与并发加锁死锁连环问答链[追问 1] 聚簇索引与二级索引非聚簇索引在物理 B 树存储上有何区别 ├── 回答要点聚簇索引叶子节点存整行数据Row Data二级索引叶子节点仅存索引列值 主键 ID。 └── [追问 2] 什么是回表如何用覆盖索引消除回表EXPLAIN 怎么看 ├── 回答要点二级索引查到主键 ID 后再次遍历聚簇索引树即为回表离散随机 I/O若查询字段全包含在二级索引中则为覆盖索引EXPLAIN Extra 呈现 Using index。 └── [追问 3] 在 RR 隔离级别下Next-Key Lock 的加锁规则是什么为什么间隙锁Gap Lock会导致死锁 ├── 回答要点加锁单位 Next-Key Lock (a, b]等值查询且记录不存在时向右退化为 Gap Lock (a, b)。 └── 回答要点间隙锁彼此兼容均可同时持有但随后两方并发执行 INSERT 时均会被对方的间隙锁阻塞等待插入意向锁构成互等环路爆发死锁模块三Java 并发容器与底层位运算连环问答链[追问 1] HashMap 为什么容量必须是 2 的整数次幂hash ^ (hash 16) 解决了什么 ├── 回答要点2 的次幂使得 hash % n 等价于高效位运算 hash (n - 1)高 16 位与低 16 位异或扰动防止低位哈希碰撞。 └── [追问 2] JDK 8 扩容迁移时是如何通过 (e.hash oldCap) 0 分流的 ├── 回答要点容量翻倍使得高位新增 1 bit按位与为 0 留在原下标低位链非 0 挂在 index oldCap高位链完全无需重新计算哈希。 └── [追问 3] ConcurrentHashMap JDK 8 为什么用 synchronized 替代 ReentrantLock扩容时其他线程怎么做 ├── 回答要点synchronized 直接复用 Node 头节点 Mark Word 零内存开销且享受 JVM 锁消除/锁粗化/自适应自旋等底层优化。 └── 回答要点写入线程读到 ForwardingNode (hash -1) 时主动调用 helpTransfer 协同并发协助迁移化竞争为合作模拟面试实战评分表全景对照考察技术领域基础及格水平及格线 60%架构专家水平大厂 Offer 线 95%Redis I/O 模型知道单线程和内存操作快讲清epoll_create红黑树 就绪链表 中断回调区分 6.0 仅 I/O 多线程MySQL 锁机制知道行锁和表锁现场推演 Next-Key Lock 等值与范围加锁退化规则画出 Gap Lock 并发死锁时序并发容器底层背出数组链表红黑树推导出 2 次幂位运算、异或扰动数学原理讲透ForwardingNode协助扩容与CounterCell分段计数实习生的备战心法大厂技术面试的底层逻辑不是考察你“能不能记住一段代码”而是考察你“知其然并知其所以然”。当你能把每一项技术选型背后的硬件制约、算法权衡和操作系统调用清晰串联成一条逻辑严密的证据链你在面试官面前展现出来的专业度就足以击穿任何八股套路。