Skip to content

重读《深入理解 Java 虚拟机》:几年后又看见不同的东西

2025 年 6 月读完第三版。

第一次看这本书还是大三学编译原理和操作系统的时候。隔了几年再读,仍然觉得经典,只是注意力已经变了。以前关心“面试会不会问”,现在更容易联想到线上问题:类为什么加载不到,GC 为什么突然抖动,对象头和锁状态到底怎样变化。

书里讲 Tomcat 类加载器与 Spring 的例子很典型。框架自己的类加载器看不到 Web 应用里的用户类,于是线程上下文类加载器成为一座桥。过去背“双亲委派”时,这类设计只是例外;有了实际开发经验再看,才理解它是在隔离和可见性之间做的现实选择。

垃圾收集器也没有脱离场景的“最好”。CMS 和 G1 在不同堆大小、不同停顿目标下各有表现,经验值只能作为起点,最终还是要拿真实应用测试。很多 JVM 知识都是这样:原理给出边界,监控和实验才给出答案。

这本书有条理,也有分量。对 Java 开发来说,它不太像读一次就结束的书,更像工作几年后可以重新翻开的坐标。阅历不同,读到的内容也不同。

Released under the MIT License.