作品简介

本书以工业级虚拟机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 最终引用
展开全部