0730学习内容

Java 后端八股高频题清单(按周配套 + 优先级)

用法:每周的"摸鱼时段"背对应主题,「周日」必须不看资料能口述/画图。
优先级:🔴高频必背 | 🟠中频理解 | 🟡低频了解
考察点列出来,方便你判断"面试官到底想听什么"。

总览(按周对应学习计划)

主题题量
W1JVM12
W2并发14
W3Spring10
W4Redis + MySQL16
W5MQ + 网络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 周)

按以下方式自测:

  1. 闭卷口述:随机抽 20 题,不看资料讲,录音回放找漏洞
  2. 画图挑战:JVM 内存图、GC 流程、AQS 队列、B+树、MVCC、Spring 三级缓存 —— 都能画
  3. 追问自测:每题自问"如果面试官追问细节,我接得住吗"
  4. 项目串联:把八股和你的试跑项目对应起来(哪些八股点在你项目里体现过)

高频追问预警(容易翻车)

  • AQS 的 CLH 队列入队出队细节
  • 三级缓存为什么是三级,不是两级
  • MVCC 的 ReadView 生成时机(RC vs RR)
  • 索引下推 ICP
  • synchronized 锁升级里偏向锁撤销
  • volatile 的 happens-before 具体规则

数字目标(量化你的掌握度)

维度合格线
能口述的题数≥ 周题量的 80%
能画图的图数≥ 10 张核心图
能结合项目讲的题≥ 15 题
模拟面试答对率≥ 70%

达不到就别上下一周,回去补。宁可少要扎实。

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP