面试题库与实战复盘
你背了多少题,面试官一眼就看穿了
我面试了超过一千个候选人,发现一个扎心的规律:
能通过面试的人,不是因为他知道得多,而是因为他说的清。
能清晰解释 HashMap 为什么用红黑树的人,说明他真的看过源码、踩过坑、复盘过生产事故。而那些只会背流程的候选人,往往在第一轮追问后就崩了——面试官问的不是"是什么",而是"为什么"和"翻车了怎么办"。
这套题库,就是帮你把"我知道"变成"我能闭环讲清楚"。
面试官真正想问的,你搞清楚了吗
你知道为什么有些人答对了所有基础题,还是没拿到 offer 吗?
因为面试官不想要一个会背书的候选人,他要的是一个真做过、想过、踩过坑的工程师。
所以每道题的设计思路都一样:
- 这道题面试官的追问边界在哪,答到什么深度才算过关
- 你答对了却没拿到 offer,问题出在哪一层
- 生产环境这个问题会怎么翻车,排查路径是什么
- JDK 源码里藏着什么设计权衡,是 P6 和 P5 的分水岭
【面试官手记】 我出 HashMap 的题,不是想听你背 put 流程。80% 的候选人都会背流程,但只有 20% 能说清楚 JDK8 为什么引入红黑树、阈值为什么是 8、什么时候退链表。层层追问,看你卡在哪一层。
题库内容
Java 基础 🔴
String 不是简单字符串、equals 与 hashCode 的契约、泛型擦除的真相——每一个都能追问到 JVM 层面。
核心主题:
- OOP 四大特性
- equals 与 hashCode — 90%的人忽略了这个契约
- String 不可变性
- 重载与重写
- static 关键字
- final 关键字
- abstract 与 interface
- 泛型详解 — 类型擦除的真相
- 泛型通配符
- 异常体系
- try-with-resources
- 反射机制
- 内部类与静态内部类
- 值传递还是引用传递
- 对象创建过程
- 浅拷贝与深拷贝
集合框架 🔴
HashMap、ConcurrentHashMap、ArrayList——每一 个都能追问到 JDK 源码层面。HashMap 死循环问题在 JDK8 修好了,但你知道为什么 JDK7 会死循环吗?
核心主题:
- HashMap 数据结构
- HashMap put 流程
- HashMap hash 算法
- HashMap 扩容机制 — 生产翻车重灾区
- HashMap 线程安全 — JDK7 死循环与 JDK8 的修复
- HashMap vs Hashtable
- ConcurrentHashMap JDK 8 原理 — 源码级追问
- CopyOnWriteArrayList
- ArrayList 扩容机制
- List 接口对比
- Fail-Fast 机制
并发编程 🔴
并发是 P6 和 P7 的分水岭。能说出几个关键字不算过关,能讲清楚 JMM、锁升级、AQS 原理、生产问题的才是真本事。
核心主题:
- 进程与线程
- 线程创建方式
- 线程状态与状态转换
- JMM 内存模型
- Happens-Before 原则
- volatile 原理
- volatile 与有序性
- synchronized 原理
- 锁升级流程 — 无锁 → 偏向锁 → 轻量级锁 → 重量级锁
- Mark Word
- synchronized vs Lock
- CAS 原理
- 原子类实现
- LongAdder
- AQS 原理 — P7 必考硬骨头
- ReentrantLock
- ReadWriteLock
- Condition
- CountDownLatch
- CyclicBarrier
- Semaphore
- Exchanger
- Phaser
- ThreadLocal — 线程封闭
- ThreadLocal 内存泄漏
Spring 全家桶 🔴
IOC/AOP 原理、Bean 生命周期、循环依赖、三级缓存——每一块都能追问到 Spring 源码。
核心主题:
- IOC 与 DI
- BeanFactory vs ApplicationContext
- Bean 生命周期
- Bean 后置处理器
- 循环依赖与三级缓存 — 源码级深水区
- 构造器循环依赖
- AOP 原理
- 代理对比:JDK vs CGLIB
- 通知器执行顺序
- Spring 事务原理
- 事务传播行为
- 事务失效场景
- 声明式 vs 编程式事务
- Spring Boot 自动配置
- Spring Boot 启动流程
- Spring Boot Starter
- 自定义 Starter
- Spring 事件监听机制
- FactoryBean
- Spring 设计模式
- MyBatis 执行流程
- MyBatis 一二级缓存
MySQL 数据库 🔴
索引、锁、事务、性能优化——四个维度形成闭环认知。只会背几个概念的人,在事务隔离级别和 MVCC 追问下分分钟露馅。
核心主题:
- MySQL 架构
- InnoDB vs MyISAM
- B+ 树索引
- 聚簇索引与辅助索引
- 最左前缀原则
- 索引失效场景
- 覆盖索引
- 索引条件下推 ICP
- EXPLAIN 分析
- 慢查询优化
- 隔离级别
- 幻读问题
- MVCC 原理 — 面试高频深水区
Redis 🔴
"数据结构 → 持久化 → 缓存策略 → 集群"这条链路,任何一个环节断了都会被追问到崩溃。
JVM 虚拟机 🟡
内存模型、垃圾回收、类加载机制——理解 Java 程序运行本质的关键。
分布式与系统设计 🟡
CAP/BASE 理论、一致性算法、分布式事务、消息队列——P7 候选人的核心考察区。
场景设计题 🟡
没有标准答案,考的是你在约束条件下的权衡能力和架构思维。
学习路径:3-6 个月怎么准备
看完每篇文章后,试着向自己复述三遍:如果我是面试官,我会追问什么?这个问题的边界条件是什么?生产环境这个问题会导致什么后果?
第一阶段:Java 基础与集合(第 1-2 个月)
从 equals 与 hashCode 和 HashMap put 流程 开始——这是集合部分的核心枢纽,搞定这两个其他都是顺藤摸瓜。
第二阶段:Spring 与框架(第 2-3 个月)
Spring 的核心是 IOC/AOP 和 Bean 生命周期。循环依赖与三级缓存 是高频深水区,值得反复研究。
第三阶段:并发编程(第 3-4 个月)
并发是 P6 和 P7 的分水岭。AQS 原理 和 锁升级流程 是两个必须攻克的硬骨头。
第四阶段:MySQL 与 Redis(第 4-5 个月)
先建索引体系认知,再深入事务机制。MVCC 原理 是 InnoDB 的核心,也是面试高频深水区。
第五阶段:JVM 与分布式(第 5-6 个月)
JVM 偏原理,分布式偏架构。这两块是 P7 候选人的必考区,也是区分"用过"和"理解过"的关键。
面试题分级速查
现在就开始
每篇文章都是站在面试官视角设计的,看完不要只是收藏——合上文章,试着给自己讲三遍,直到能闭环复述为止。
面试不是背书,是讲清楚。把这套题库吃透,让面试官追问你到第三轮时,心里慌的人是他,不是你。