大厂 Java 面试最爱拷打的 8 个问题,答不上来基本白聊
很多人刷八股,问题不是背得不够多。
问题是:
背了很多,但一问深入就断。
大厂面试尤其明显。
不是问你会不会,而是问你:
你到底懂到哪一层。
今天直接说 Java 面试里最容易被拷打的 8 个问题。
每个问题后面,我都给你一句“面试官真正想听什么”。
1. HashMap 为什么线程不安全?
很多人上来就一句:
因为多线程下会数据覆盖、死循环。
这句话不算错,但不够。
你至少要知道 3 点:
put过程中不是原子操作- JDK1.7 扩容时头插法可能形成环形链表
- JDK1.8 虽然优化了扩容方式,但并没有解决线程安全问题
面试官真正想听的是:
你知不知道“线程不安全”具体不安全在哪,出现过什么后果,JDK 版本差异是什么。
更多全面的java大厂面试题和必备八股文都收录在专栏里面了:
https://www.nowcoder.com/creation/manager/columnDetail/0n9XOd
2. ConcurrentHashMap 为什么效率比 Hashtable 高?
别只会回答:
因为锁更细。
这太浅了。
你应该分版本说:
- JDK1.7:
Segment分段锁 - JDK1.8:
CAS + synchronized + volatile
重点要说出来:
- 不是整表锁
- 读操作大部分不加锁
- 并发冲突时才锁桶或节点
- 利用 CAS 减少阻塞
面试官真正想听的是:
你不是记住了名词,而是真的知道它为什么更快。
3. AQS 到底是什么?
很多人背:
AQS 是队列同步器,是很多锁的底层实现。
没错,但不够面试。
你至少要讲清楚:
- 核心是一个
volatile int state - 用
CLH变种双向队列管理等待线程 - 获取锁失败的线程进入队列排队
- 释放锁后唤醒后继节点
如果再往下追:
ReentrantLock怎么基于 AQS 实现?- 公平锁和非公平锁区别在哪?
CountDownLatch和Semaphore怎么用 state?
面试官真正想听的是:
你能不能把 AQS 说成“机制”,而不是一句定义。
4. synchronized 和 ReentrantLock 怎么选?
标准答案不是“ReentrantLock 更强”。
而是看场景。
synchronized 适合:
- 语义简单
- 自动释放锁
- 代码量少
- JVM 层面优化成熟
ReentrantLock 适合:
- 需要可中断锁
- 需要超时获取锁
- 需要公平锁
- 需要多个
Condition
面试官真正想听的是:
你有没有实际判断能力,而不是机械站队。
5. JVM 垃圾回收到底在回收什么?
别张口就是“回收没用对象”。
这句话跟没说差不多。
你要说清楚:
- 判断对象是否存活,主流是可达性分析
- 回收的核心区域主要是堆
- 新生代和老年代采用的回收策略不同
- 常见垃圾回收器的适用场景不同
如果面试官追问:
- CMS 和 G1 区别
- G1 为什么能预测停顿
- Minor GC 和 Full GC 触发条件
你不能只背名词。
面试官真正想听的是:
你对 JVM 的理解有没有“分区 + 算法 + 收集器 + 场景”这条主线。
6. Spring 为什么能解决循环依赖?
这题经常把人问懵。
你最少要答到三级缓存:
- 一级缓存:成品 Bean
- 二级缓存:提前暴露的 Bean
- 三级缓存:对象工厂,用来生成早期引用
为什么不是二级缓存就够?
因为 AOP 代理对象可能还没生成。
三级缓存本质上是:
把“是否需要代理”这件事延后处理。
但也要知道边界:
- 只解决单例 Bean 的 setter 注入循环依赖
- 构造器循环依赖通常解决不了
面试官真正想听的是:
你能不能把 Spring 说到源码设计层,而不是只会一句“三级缓存”。
7. MySQL 索引失效都有哪些场景?
这题不是背口诀,是看你有没有 SQL 经验。
高频场景直接记:
- 对索引列做函数操作
- 隐式类型转换
- 联合索引不满足最左前缀
- 范围查询后面的列利用率下降
like '%xx'前缀模糊匹配- 数据量太小,优化器不一定走索引
你再补一句会更稳:
索引是否生效,本质上要看执行计划,不要靠猜。
面试官真正想听的是:
你不是背过“索引失效”,而是真的排查过 SQL。
8. Redis 为什么快?
别再只答“基于内存”。
这只是其中一层。
完整一点要说:
- 内存操作,避免磁盘 IO
- 单线程模型避免线程切换开销和锁竞争
- IO 多路复用提高网络处理效率
- 数据结构设计高效
- 请求模型简单,执行路径短
如果继续追问:
- 单线程为什么还能快?
- 6.0 之后线程模型变了吗?
- 缓存击穿、穿透、雪崩怎么处理?
你得能接得住。
面试官真正想听的是:
你知道 Redis 快在哪里,也知道它的瓶颈在哪里。
最后说一句
大厂面试不怕你不会。
怕的是你:
只会背结论,不会讲原因;只会讲表层,不会讲过程;只会说名词,不会落到场景。
八股不是不能背。
但你要把每个知识点背成 3 层:
- 定义是什么
- 原理是什么
- 项目里怎么用,出过什么问题
能答到第三层,面试通过率才会明显上去。

