DEEPDIVE · JDK 11
深钻模块:3 个硬核主题
不满足于会用,要能讲清「为什么这样设计、代价是什么、边界在哪里」。
四步结构每个主题都按「心智模型 → 机制拆解 → 落地实践 → 费曼自检」展开。你可以先跳到任意一步,但真正的掌握发生在最后一步。
01
HttpClient 内部机制:连接池、HTTP/2 与异步
HttpClient 的公共 API 很小,内部却是一条完整的异步 I/O 管线:SelectorManager 负责非阻塞事件,ConnectionPool 负责复用,Exchange 负责一次请求/响应,HTTP/2 把一条连接拆成多个 stream。理解这条管线,才能正确设置超时、并发与生命周期。
02
ZGC:着色指针、读屏障与并发重定位
ZGC 用着色指针把标记状态放进引用本身,用读屏障把标记、重映射和重定位的工作摊到应用线程,从而把停顿压到毫秒级。JDK 11 的它是实验特性,只支持 Linux/x64,单代、无压缩 oops、不支持类卸载。理解这些边界,比记住「低延迟」三个字重要。
03
JPMS 迁移:模块路径、未命名模块与强封装
JPMS 在 classpath 之上加了模块图:命名模块、自动模块、未命名模块各有不同的可读性与导出规则。迁移的难点通常不是写 module-info,而是让依赖被解析、让反射有明确的 opens。
为什么是这四步METHOD
- 心智模型:先建立一张能自洽的图。没有模型,细节只是碎片。
- 机制拆解:看 JDK 如何实现,理解设计取舍与代价。
- 落地实践:把机制落到代码、参数、排障步骤上。
- 费曼自检:用自己的话复述,暴露理解漏洞。回答不了就回到对应小节。