深入理解 Java 虚拟机读书笔记
深入理解 Java 虚拟机读书笔记
tags
JVM
Java
栈帧
内存
线程
并发
同步
缓存
异常
I/O
编译原理
读书笔记
date
Mar 26, 2021
status

随着书本内容、各种视频和博客,Fork 自 doocs/jvm 仓库,基于此大纲来扩充并整理一遍 JVM 中的知识点。了解 JVM 的内部结构和各种机制,分析 Java 程序在 JVM 内部的运作流程,优化 Java 程序的性能。
《深入理解Java虚拟机》一书十分推荐使用第三版,第三版比之第二版增加了近半的新内容,以及作者的勘误修订。但就算按照章节目录顺序来阅读此书,其学习曲线也并不是平滑的,有时本章中表露的一些知识点,需要在后文才能揭晓详情,但又因为 JVM 各种技术细节关联性大,不得不「提前出场」。
并不建议 Java 初学者深入阅读此书,在第二部分「自动内存管理」和第五部分「高效并发」中,需要一定的计算机体系结构、操作系统等知识;在第三部分「虚拟机执行子系统」中,需要一定的 Java (或基于 JVM 的编程语言等)开发经验;在第四部分「程序编译与代码优化」中需要一定的编译原理等知识。
尽管需要前置知识,学习曲线也不平滑,但还是建议按照章节目录顺序进行学习。

1. 走近 Java(略)

notion image

2. 自动内存管理

[1] 运行时数据区域[2] HotSpot VM 对象探秘[3] 内存分配策略与引用[4] 垃圾收集策略与算法[5] HotSpot VM 垃圾收集器[6] 性能监控与故障处理工具[7] 性能调优和系统参数

3. 虚拟机执行子系统

[8] 类文件结构[9] 类加载子系统[10] 字节码执行引擎

4. 程序编译与代码优化

[11] 前后端编译与优化

5. 高效并发

[12] Java 内存模型与线程[13] 线程安全与锁优化

References