> For the complete documentation index, see [llms.txt](https://keyus-organization.gitbook.io/keyuhan.work/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://keyus-organization.gitbook.io/keyuhan.work/week1-plan.md).

# Week1 Plan

**第一阶段：Java底层与并发编程（2周）**

**目标**：掌握面试必问的源码级原理，避免“八股文背题”式回答。

1. **JVM深度剖析**
   * 内存模型：堆、栈、方法区、元空间、直接内存；
   * GC算法：CMS、G1、ZGC的回收原理与调优参数（-XX:MaxGCPauseMillis ）；
   * 类加载机制：双亲委派、自定义类加载器、Tomcat打破双亲委派的实现；
   * 工具链：Arthas在线诊断、MAT内存分析、JProfiler压测。
   * **实战**：用Arthas定位内存泄漏，输出博客《我是如何用10分钟找到OOM的》。
2. **并发编程源码**
   * 基础：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实现流程图      |

***

\ <br>
