Java 大厂高频面试题复习面经
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 很多人问我同一个问题:Java 面试还要不要背八股?
- JVM 内存模型中,程序计数器、虚拟机栈、本地方法栈、堆、元空间各自存什么?哪些区域会 OOM?
- 对象什么时候从 Eden 区进入 Survivor,又什么时候晋升到老年代?大对象会直接进老年代吗?
- G1 和 CMS 的核心区别是什么?什么业务场景你会选 G1,什么场景考虑 ZGC?
- synchronized 和 ReentrantLock 的区别?各自底层实现是什么?
- volatile 能保证原子性吗?它的可见性和有序性是怎么实现的?
- ThreadLocal 的原理是什么?为什么会内存泄漏?怎么避免?
- HashMap 的 put 流程是怎样的?为什么要用红黑树?负载因子为什么是 0.75?
- Spring IOC 容器的启动流程是怎样的?Bean 的生命周期有哪些阶段?
- Spring AOP 的实现原理是什么?JDK 动态代理和 CGLIB 代理分别在什么条件下使用?
- Spring 事务在什么情况下会失效?@Transactional 注解的传播行为有哪些?
- MySQL 索引的底层数据结构是什么?什么情况下索引会失效?
- MySQL 的四种隔离级别分别解决什么问题?MVCC 是怎么实现的?
- 分布式锁有哪些实现方案?Redis 分布式锁有什么问题?Redisson 是怎么解决的?
- 消息队列如何保证消息不丢失?如何保证消息不被重复消费?
《参考解析》
- 这类问题建议结合自己的项目经历和岗位要求准备具体案例,突出思考过程而非死记结论,面试官更看重解决问题的逻辑。
- 红黑树是内存内的平衡二叉树,追求单点操作的对数复杂度;B+树针对磁盘/索引场景做了扇出优化,减少IO次数,更适合范围查询和顺序扫描。
- Spring/Spring Boot的核心是IOC容器与AOP,理解Bean生命周期、自动装配原理和常见starter的加载顺序是回答这类问题的关键。