【2026春招突击版】一周带你搞定Java面试八股文!多线程/mybatis/MySQL/spring/kafka/rocketmq一套全搞懂
·
【2026春招突击版】一周带你搞定Java面试八股文!多线程/mybatis/MySQL/spring/kafka/rocketmq一套全搞懂
以下是为大家规划的Java核心技术突击路线,覆盖高频考点与实战要点:
一、多线程核心
-
线程安全三要素
- 原子性:
synchronized/Lock/CAS - 可见性:
volatile/synchronized - 有序性:内存屏障
// volatile示例 private volatile boolean flag = false; - 原子性:
-
线程池参数与流程
- 核心参数:
corePoolSize,maxPoolSize,keepAliveTime,workQueue - 执行流程:核心线程 → 任务队列 → 非核心线程 → 拒绝策略
- 核心参数:
-
锁优化
- 偏向锁 → 轻量级锁 → 重量级锁(锁膨胀)
ReentrantLockvssynchronized:可中断/公平锁/条件变量
二、MySQL深度优化
-
索引优化
- B+树结构:$$ \text{层高} = \log_{\text{fanout}} N $$
- 最左前缀原则:联合索引
(a,b,c)仅支持a/a,b/a,b,c查询 - 覆盖索引:避免回表
-
事务隔离级别
级别 脏读 不可重复读 幻读 READ UNCOMMITTED ✓ ✓ ✓ REPEATABLE READ ✗ ✗ ✓(InnoDB通过MVCC避免) -
死锁排查
SHOW ENGINE INNODB STATUS; -- 查看最近死锁日志
三、Spring框架精要
-
IoC容器
- Bean生命周期:实例化 → 属性填充 → 初始化 → 销毁
- 循环依赖:三级缓存(
singletonFactories/earlySingletonObjects/singletonObjects)
-
AOP原理
- JDK动态代理:接口实现类
- CGLIB:继承目标类
@Around("execution(* com.service.*.*(..))") public Object log(ProceedingJoinPoint pjp) throws Throwable { // 切面逻辑 } -
事务传播行为
PROPAGATION_REQUIRED:当前无事务则新建PROPAGATION_NESTED:嵌套事务(SavePoint机制)
四、消息队列对比
| 特性 | Kafka | RocketMQ |
|---|---|---|
| 吞吐量 | 百万级/秒 | 十万级/秒 |
| 消息顺序 | 分区有序 | 队列有序 |
| 事务消息 | 支持(0.11+) | 原生支持 |
-
Kafka高可用
- ISR机制:
Leader+Follower(同步副本) - 数据持久化:分段日志(Segment) + 零拷贝
- ISR机制:
-
RocketMQ重试机制
- 消费失败:16次阶梯重试(间隔:2s → 2h)
五、MyBatis进阶
-
缓存机制
- 一级缓存:
SqlSession级别(默认开启) - 二级缓存:
Mapper级别(需手动配置)
- 一级缓存:
-
动态SQL
<select id="findUser"> SELECT * FROM user <where> <if test="name != null">AND name = #{name}</if> </where> </select>
学习计划表
| 天数 | 模块 | 重点 |
|---|---|---|
| Day1 | 多线程 | JUC包/线程池/锁优化 |
| Day2 | MySQL | 索引/事务/锁/优化 |
| Day3 | Spring | IoC/AOP/事务 |
| Day4 | 消息队列 | Kafka/RocketMQ架构对比 |
| Day5 | MyBatis | 缓存/动态SQL/插件 |
| Day6 | 综合 | 场景题设计(秒杀/分布式ID) |
| Day7 | 模拟面试 | 高频题实战演练 |
最后建议:结合LeetCode多线程题目(如1114.按序打印)和开源项目(如Spring Boot + MyBatis电商demo)加深理解。
更多推荐




所有评论(0)