Week1 Plan
第一阶段:Java底层与并发编程(2周)
目标:掌握面试必问的源码级原理,避免“八股文背题”式回答。
JVM深度剖析
内存模型:堆、栈、方法区、元空间、直接内存;
GC算法:CMS、G1、ZGC的回收原理与调优参数(-XX:MaxGCPauseMillis );
类加载机制:双亲委派、自定义类加载器、Tomcat打破双亲委派的实现;
工具链:Arthas在线诊断、MAT内存分析、JProfiler压测。
实战:用Arthas定位内存泄漏,输出博客《我是如何用10分钟找到OOM的》。
并发编程源码
基础:synchronized锁升级、CAS底层(Unsafe类)、AQS原理(ReentrantLock/CountDownLatch);
线程池:ThreadPoolExecutor参数设计、拒绝策略、动态调整核心线程数;
并发容器:ConcurrentHashMap分段锁优化、CopyOnWriteArrayList适用场景;
实战:手写一个简化版AQS,支持共享锁/独占锁,发布到Github。
第1周:Java底层与JVM
核心目标:掌握JVM内存模型、GC算法、类加载机制,熟练使用Arthas排查问题。
Day 1
JVM内存模型(堆、栈、方法区、元空间)
手写简化版JVM内存分配器(模拟堆栈分配)
GitHub代码 + 内存分配流程图
Day 2
GC算法(CMS、G1、ZGC)与调优参数
用JProfiler压测GC性能,对比CMS与G1差异
压测报告 + 《CMS vs G1调优实战》博客
Day 3
类加载机制(双亲委派、自定义类加载器)
实现自定义类加载器,加载加密Class文件
GitHub代码 + 类加载时序图
Day 4
Arthas工具链(监控、诊断、热更新)
用Arthas定位模拟OOM问题,生成火焰图
Arthas命令手册 + OOM排查案例文档
Day 5
JVM调优实战(堆大小、线程栈、直接内存)
优化线上模拟服务,将GC暂停时间降低50%
调优前后性能对比表 + 《JVM调优实战》博客
Day 6
并发基础(synchronized锁升级、CAS)
手写CAS无锁队列,对比JDK实现性能
GitHub代码 + 性能测试报告
Day 7
AQS原理(ReentrantLock、CountDownLatch)
手写简化版AQS(支持共享锁/独占锁)
GitHub代码 + AQS实现流程图
Last updated