0730学习内容
Java 后端八股高频题清单(按周配套 + 优先级)
用法:每周的"摸鱼时段"背对应主题,「周日」必须不看资料能口述/画图。
优先级:🔴高频必背 | 🟠中频理解 | 🟡低频了解
考察点列出来,方便你判断"面试官到底想听什么"。
总览(按周对应学习计划)
| 周 | 主题 | 题量 |
|---|---|---|
| W1 | JVM | 12 |
| W2 | 并发 | 14 |
| W3 | Spring | 10 |
| W4 | Redis + MySQL | 16 |
| W5 | MQ + 网络 | 12 |
| W6 | 分布式 | 10 |
| W7 | 设计模式 | 8 |
| W8 | 综合自测 | — |
W1:JVM
内存结构
- 🔴 JVM 运行时数据区有哪些?哪些线程共享、哪些私有?
考察点:堆/方法区共享,栈/PC/本地方法栈私有 - 🔴 堆和方法区(元空间)分别存什么?为什么要替换永久代为元空间?
考察点:对象/类元数据,元空间在本地内存防 OOM - 🟠 栈帧结构?方法调用和栈帧的关系?
考察点:局部变量表/操作数栈/动态链接 - 🟡 程序计数器为什么私有?
GC
- 🔴 GC 算法有哪些?各有何优缺点?
考察点:标记清除/复制/标记整理 - 🔴 分代模型?对象怎么晋升老年代?
考察点:Eden/Survivor,年龄阈值,大对象直接进老年代 - 🔴 CMS 和 G1 的区别?G1 为什么低停顿?
考察点:region 化、可预测停顿、混合回收 - 🟠 什么时候触发 Full GC?怎么排查?
考察点:老年代满/元空间满/System.gc - 🟠 常见的 OOM 类型?怎么定位?
考察点:堆/元空间/直接内存/GC overhead
类加载
- 🔴 类加载过程?
考察点:加载/验证/准备/解析/初始化 - 🔴 双亲委派模型?为什么这么设计?能打破吗?
考察点:安全+唯一性,Tomcat/SPI 打.break - 🟠 JVM 调优常用参数?
考察点:-Xmx/-Xms/-XX:+UseG1GC 等
W2:并发
基础
- 🔴 JMM 是什么?happens-before 规则?
考察点:可见性/有序性/原子性 - 🔴 volatile 原理和作用?和 synchronized 区别?
考察点:内存屏障、可见性、不保证原子性 - 🟠 synchronized 锁升级过程?
考察点:无锁→偏向→轻量→重量
AQS & 锁
- 🔴 AQS 原理?CLH 队列?独占和共享模式?
考察点:state + FIFO 队列 + CAS - 🔴 ReentrantLock 和 synchronized 区别?公平锁?
考察点:可中断/超时/公平/条件变量 - 🟠 ReentrantReadWriteLock 原理?
考察点:高低位拆分读写状态
线程池
- 🔴 线程池七参数?执行流程?
考察点:核心/最大/队列/存活/工厂/拒绝策略 - 🔴 拒绝策略有哪些?实际怎么选?
考察点:AbortPolicy/CallerRuns 等 - 🔴 线程池怎么合理配置参数?CPU/IO 密集型?
考察点:N CPU vs 2N+1 - 🟠 为什么阿里规约禁止 Executors 直接建线程池?
考察点:无界队列 OOM 风险
并发工具
- 🔴 ThreadLocal 原理?内存泄漏怎么发生?怎么避免?
考察点:ThreadLocalMap、弱引用、remove - 🟠 CountDownLatch / CyclicBarrier / Semaphore 区别?
- 🟠 ConcurrentHashMap 在 JDK7/8 的实现区别?
考察点:分段锁 vs CAS+synchronized - 🟡 CAS 原理?ABA 问题?
考察点:version/AtomicStampedReference
W3:Spring
- 🔴 IoC 理解?Bean 生命周期?
考察点:实例化→属性→初始化→销毁,BeanPostProcessor - 🔴 AOP 原理?JDK 动态代理 vs CGLIB?
考察点:接口代理/继承代理 - 🔴 Spring 事务原理?@Transactional 失效场景?
考察点:自调用/非 public/异常被吞/传播级别 - 🔴 循环依赖怎么解决?三级缓存?
考察点:singletonObjects/earlySingletonObjects/singletonFactories - 🔴 Bean 作用域有哪些?
- 🟠 Spring 启动流程?refresh() 做了啥?
- 🟠 @Autowired 和 @Resource 区别?
- 🟠 Spring 事务传播行为?(7 种)
- 🟡 SpringBoot 自动配置原理?
- 🟡 常用扩展点?(BeanPostProcessor/InitializingBean 等)
W4:Redis
- 🔴 Redis 为什么快?
考察点:内存/单线程/IO 多路复用/数据结构 - 🔴 常用数据类型及底层数据结构?
考察点:String/list/hash/zset/skip list - 🔴 缓存穿透/击穿/雪崩 区别和解法?
考察点:布隆过滤器/热点 key 永不过期/随机过期 - 🔴 持久化 RDB vs AOF?混合持久化?
- 🔴 主从复制/哨兵/Cluster 区别?
- 🟠 Redis 怎么实现分布式锁?Redlock?
考察点:SETNX+expire/看门狗/Redlock 争议 - 🟠 过期策略和内存淘汰策略?
- 🟡 大 key/热 key 问题怎么解决?
W4:MySQL
- 🔴 InnoDB 索引结构?为什么用 B+树?
考察点:vs B 树/红黑树,范围查询优势 - 🔴 聚簇索引 vs 非聚簇索引?回表?覆盖索引?
- 🔴 索引失效场景?
考察点:最左前缀/函数/隐式转换/%前置 - 🔴 事务隔离级别?各级别解决什么问题?
考察点:脏读/不可重复读/幻读 - 🔴 MVCC 原理?ReadView?
考察点:undo log + 隐藏字段 + ReadView - 🔴 ** redo log / undo log / binlog 区别?**
- 🟠 MySQL 锁:行锁/间隙锁/Next-Key?
- 🟠 死锁怎么排查?
- 🟠 慢查询怎么优化?explain 各字段?
- 🟡 主从同步原理?延迟怎么解决?
W5:MQ
- 🔴 MQ 的作用?哪些场景?
- 🔴 如何保证消息不丢?(生产/存储/消费三段)
- 🔴 如何保证消息不重复消费(幂等)?
- 🟠 消息顺序消费怎么保证?
- 🟠 消息堆积怎么处理?
- 🟠 Kafka 高吞吐原因?
- 🟡 RocketMQ 事务消息原理?(你的项目用 MsgBroker,正好对口)
W5:网络
- 🔴 TCP 三次握手/四次挥手?为什么?
- 🔴 TCP 和 UDP 区别?TCP 可靠传输怎么保证?
- 🟠 HTTPS 握手过程?TLS?
- 🟠 从输入 URL 到显示页面发生了什么?
- 🟡 HTTP/1.1 vs 2 vs 3 区别?
W6:分布式
- 🔴 CAP/BASE 理论?
- 🔴 分布式锁实现方案对比?
考察点:DB/Redis/ZK,各有取舍 - 🔴 分布式事务方案?2PC/TCC/本地消息表/Saga/Seata
考察点:你项目用 MsgBroker 事务消息,可结合讲 - 🟠 分布式 ID 方案?雪花算法?
- 🟠 限流算法?令牌桶/漏桶/滑动窗口
- 🟠 熔断降级原理?Sentinel/Hystrix
- 🟡 一致性 hash?虚拟节点?
- 🟡 Raft/Paxos 了解多少?
- 🟡 负载均衡策略?
- 🟡 微服务组件:注册/配置/网关/链路追踪(你项目用 SOFA 体系,对口)
W7:设计模式
- 🔴 单例模式?双重检查锁?枚举单例?
考察点:DCL + volatile 防指令重排 - 🔴 策略模式?你项目里用过吗?
考察点:试跑的 CompareStrategy/RewriteStrategy 就是!直接讲 - 🟠 工厂模式?简单/工厂方法/抽象工厂?
- 🟠 责任链模式?
考察点:试跑的 filter strategies / processor 链 - 🟠 观察者/发布订阅?
考察点:MQ 场景 - 🟠 代理模式?动态代理?
考察点:Spring AOP - 🟡 模板方法?
考察点:你项目的 TrialRunServiceTemplate!直接讲 - 🟡 适配器/装饰器?
💡 设计模式你完全可以用自己项目举例(CLAUDE.md 里提到的 ServiceTemplate、Strategy 链),这是面试官最爱听的,比背书强 100 倍。
W8:综合自测(不背新题,验证前 7 周)
按以下方式自测:
- 闭卷口述:随机抽 20 题,不看资料讲,录音回放找漏洞
- 画图挑战:JVM 内存图、GC 流程、AQS 队列、B+树、MVCC、Spring 三级缓存 —— 都能画
- 追问自测:每题自问"如果面试官追问细节,我接得住吗"
- 项目串联:把八股和你的试跑项目对应起来(哪些八股点在你项目里体现过)
高频追问预警(容易翻车)
- AQS 的 CLH 队列入队出队细节
- 三级缓存为什么是三级,不是两级
- MVCC 的 ReadView 生成时机(RC vs RR)
- 索引下推 ICP
- synchronized 锁升级里偏向锁撤销
- volatile 的 happens-before 具体规则
数字目标(量化你的掌握度)
| 维度 | 合格线 |
|---|---|
| 能口述的题数 | ≥ 周题量的 80% |
| 能画图的图数 | ≥ 10 张核心图 |
| 能结合项目讲的题 | ≥ 15 题 |
| 模拟面试答对率 | ≥ 70% |
达不到就别上下一周,回去补。宁可少要扎实。
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
内容推荐
Day 68时间19:00~ 22:00(3h)✅ 今天做了:Component注解、Mybatis配置、使用⏰ 明天计划:Lombok、Mapper映射、动态SQL📚 今日感悟:自动配置类DataSourceAutoConfiguration ,会读取properties文件,通过注解:@EnableConfigurationProperties(DataSourceProperties.cl
2
Day 19✅ 今天做了:MCP⏰ 明天计划:AI智能体构建📚 今日感悟:今天MCP问题有点多有点杂,明天找时间再捋一下。继续加油
1
Day 25✅ 今天做了:1、扇贝英语单词打卡2、英语听说读写、听力练习3、微信阅读15分钟4、编程导航学习⏰ 明天计划:待定📚 今日感悟:Keep going!
2
Day 104✅ 今天做了:学习了Java反射及快速入门⏰ 明天计划:继续学习Java反射
1
为啥codex老是提示这个啊
1
