
深入剖析Java虚拟机(基础卷)
源码剖析与实例详解
作品简介
本书以工业级虚拟机HotSpot的源代码分析为基础,详细介绍了对象的二分模型、类的加载机制、类及常量池的解析、方法及变量解析、对象的创建和初始化、Serial和Serial Old垃圾收集器、Java引用类型等的实现原理,同时对重点源代码的实现进行了详细解读,让读者真正掌握HotSpot虚拟机运行的每个细节。本书共13章,章节的前后顺序基本都是按类的生命周期进行介绍。本书对于HotSpot VM的基础功能模块进行了源码剖析,力求交待清楚每个重要知识点的实现细节和背后的运行原理,同时还会用大量的实例和配图帮助读者更好的理解。
马智,有多年的Java开发经验,先后在掌游天下和京东集团任软件研发工程师。对编程语言的底层实现有浓厚的兴趣,深入研究过OpenJDK的源码实现。著有《深入解析Java编译器:源码剖析与实例详解》一书,颇受读者好评。
作品目录
内容简介
作者介绍
本书赞誉
配套源码获取方式
前言
第1章 认识HotSpot VM
1.1 初识JVM
1.2 编译OpenJDK 8
1.3 HotSpot VM源代码结构
1.4 启动HotSpot VM
第2章 二分模型
2.1 Java类的表示——Klass
2.2 Java对象的表示——oop
2.3 操作句柄——Handle
第3章 类的加载
3.1 类加载器
3.2 预加载类
3.3 Java主类的装载
3.4 触发类的装载
第4章 类与常量池的解析
4.1 类的解析
4.2 常量池的解析
第5章 字段的解析
5.1 字段的解析基础
5.2 伪共享
5.3 字段的内存布局
5.4 字段的注入
5.5 对象类型字段的遍历
第6章 方法的解析
6.1 Method与ConstMethod类
6.2 调用parse_methods()函数解析方法
6.3 klassVtable虚函数表
6.4 klassItable虚函数表
第7章 类的连接与初始化
7.1 类的连接
7.2 类的验证
7.3 类的重写
7.4 方法的连接
7.5 类的初始化
第8章 运行时数据区
8.1 HotSpot VM的内存划分
8.2 元空间
8.3 堆空间
第9章 类对象的创建
9.1 对象的创建
9.2 对象的内存分配
第10章 垃圾回收
10.1 分代垃圾回收
10.2 垃圾回收线程
10.3 安全点
第11章 Serial垃圾收集器
11.1 触发YGC
11.2 年轻代的垃圾回收
11.3 标记普通的根对象
11.4 标记老年代引用的对象
11.5 递归标记活跃对象并复制
第12章 Serial Old垃圾收集器
12.1 触发FGC
12.2 标记活跃对象
12.3 计算活跃对象的地址
12.4 更新对象的引用地址
12.5 移动所有活跃对象
12.6 更新偏移表与卡表
第13章 Java引用类型
13.1 Java引用类型简介
13.2 查找引用类型
13.3 软引用
13.4 弱引用
13.5 虚引用
13.6 最终引用