简介:学习顺序初级->中级->高级

Java初级最终完整版学习路线图-CSDN博客

Java中级最终完整版学习路线图-CSDN博客

Java 高级(架构师底盘|完整版)

1. JMM 内存模型、volatile、synchronized 底层

  • JMM Java 内存模型核心:主内存、工作内存、内存交互 8 大原子操作
  • 并发三大特性:原子性、可见性、有序性
  • volatile 底层原理:
    • 可见性实现(缓存行失效、MESI 协议)
    • 禁止指令重排(内存屏障 LoadLoad、StoreStore、LoadStore、StoreLoad)
    • volatile 为什么不保证原子性
  • synchronized 底层深度:
    • 对象头结构:Mark Word、Klass Pointer
    • 锁升级机制:无锁 → 偏向锁 → 轻量级锁 → 重量级锁
    • 监视器锁 Monitor 原理(ObjectMonitor)
    • 锁粗化、锁消除、自旋锁、自适应自旋
  • Happens-Before 规则
  • DCL 单例双重校验为什么需要 volatile

2. AQS、线程池、CompletableFuture、异步编程

  • AQS 抽象队列同步器(Java 锁核心)
    • CLH 队列、state 状态、共享式 / 独占式获取锁
    • 底层:acquire、release、tryAcquire、tryRelease
    • ReentrantLock、CountDownLatch、Semaphore、CyclicBarrier 底层全是 AQS
  • 线程池高级
    • 线程池状态 RUNNING/SHUTDOWN/STOP/TIDYING/TERMINATED
    • 线程池执行全过程(addWorker、runWorker)
    • 动态线程池、线程池监控、线上线程池优化
    • 线程池死锁、OOM 场景
  • CompletableFuture 异步编排
    • 异步任务创建、链式调用、异常处理
    • 多任务组合:allOf、anyOf、thenCompose、thenCombine
    • 异步线程池隔离、异步最佳实践
  • 异步编程模型:异步回调、事件驱动、非阻塞

3. JVM 高级:内存结构、类加载、GC(CMS/G1/ZGC)

  • JVM 运行时数据区高级
    • 直接内存、元空间、栈帧、局部变量表、操作数栈
    • OOP-Klass 对象模型、对象内存布局
  • 类加载机制深度
    • 类加载全过程(加载、验证、准备、解析、初始化)
    • 双亲委派模型破坏场景(SPI、Tomcat 类加载)
    • 类卸载条件、反射类加载
  • GC 垃圾回收高级
    • 垃圾判断:引用计数、可达性分析
    • 四种引用:强、软、弱、虚引用
    • CMS 收集器:运作流程、优缺点、浮动垃圾、Concurrent Mode Failure
    • G1 收集器:Region 分区、SATB、RSet、CSet、mixed GC
    • ZGC 收集器:染色指针、读屏障、低延迟原理
    • GC 日志解读、GC 性能指标(吞吐量、暂停时间)

4. 线上问题排查:OOM、死锁、CPU 高、GC 调优

  • CPU 占用 100% 排查
    • top、top -Hp、jstack、线程栈定位
  • 死锁排查
    • jstack 自动检测死锁
    • 死锁成因、避免方案
  • OOM 异常全面分析
    • Java heap space
    • Metaspace
    • Direct buffer memory
    • Unable to create new native thread
    • GC overhead limit exceeded
  • 线上排查工具
    • jps、jstat、jmap、jstack、jinfo、arthas
  • JVM 调优实战
    • 堆内存参数配置
    • GC 收集器选择
    • GC 频繁、停顿时间长优化
    • 内存泄漏定位与解决

5. Spring 源码、MyBatis 源码、框架问题定位

Spring 源码

  • IOC 容器启动流程(refresh () 12 大步)
  • Bean 生命周期源码级流程
  • 三级缓存解决循环依赖源码
  • AOP 动态代理创建时机
  • Spring 事务传播行为源码
  • @Transactional 事务提交 / 回滚机制
  • Spring 事件驱动、SPI 机制

MyBatis 源码

  • SqlSessionFactory 构建过程
  • Mapper 接口 JDK 动态代理
  • SQL 执行流程(Executor、StatementHandler、ParameterHandler、ResultSetHandler)
  • 一级缓存、二级缓存原理
  • MyBatis 插件机制(Interceptor)

框架问题定位

  • Spring 循环依赖、Bean 提前暴露
  • 事务不生效、AOP 不生效源码定位
  • MyBatis 参数绑定、SQL 执行异常
  • SpringBoot 自动配置原理
  • 框架启动慢、内存占用高、线程泄漏定位

更多推荐