整活儿!“字节”内部都在疯卷的《Java虚拟机HotSpot源码剖析》

61 阅读3分钟

本书特色

内容丰富,讲解详细:本书对对象的二分模型、类的加载机制、类与常量池、方法与变量、对象的创建和初始 化、Serial和Serial Old垃圾收集器、Java引用类型等内容进行详细解读,帮读者真正掌握HotSpot VM运行的每个细节。

原理分析与实例并重:本书对HotSpot VM的各个基础功能模块的重点源代码进行了详细分析,并结合大量实 例和图示帮助读者更好地理解所学内容。

分析工业级虚拟机的源码实现:本书分析的是一个工业级的Java虚拟机HotSpot,它是大部分Java开发人员运行Java项目 时使用的虚拟机。对于Java从业人员来说,深入理解HotSpot VM的运行原理,可以帮助他 们写出更加高效的Java代码,同时也能更好地排查Java性能瓶颈等一系列问题。

咱们一起来看一下目录

第1章认识HotSpot VM

目前主流的Java虚拟机包括HotSpot、J9和Zing等,其中,HotSpot是目前使用范围最广 的虚拟机。本书将针对HotSpot虚拟机的实现原理进行详细介绍

第2章二分模型

HotSpot采用oop-Klass模型表示Java的对象和类。oop(ordinary object pointer)指普通 的对象指针,Klass表示对象的具体类型。 为何要设计一个一分为二的对象模型呢?这是因为HotSpot的设计者不想让每个对象中 都含有一个vtable(虚函数表),所以就把对象模型拆成Klass和oop。其中,oop中不含有任 何虚函数,自然就没有虚函数表,而Klass中含有虚函数表,可以进行方法的分发。

第3章类的加载

第二章介绍了Java类在HotSpot VM中的表示,本章重点介绍类的加载过程。类的加载 就是将Class文件加载到HotSpot VM的内存中,通过Klass和ConstantPool等实例保存Class文 件中的元数据信息,以方便虚拟机运行Java方法,并执行反射等操作。

第4章类与常量池的解析

第3章在介绍类的双亲委派机制时,多次涉及对ClassFileParser类中的parseClassFile()函 数的调用。因为类的加载不仅仅是找到类对应的Class文件,更要解析出Class文件中包含的 信息,然后将其转换为HotSpot VM的内部表示方式,这样虚拟机在运行的过程中才能方便 地操作。

第5章字段的解析

解析出Class文件中保存的字段信息后映射为HotSpot VM内部的 表示形式,同时还要对实例字段进行布局。

第6章方法的解析

解析出Class文件中保存的方法信息后映射为HotSpot VM内部的 表示形式,并初始化klassVtable与klassItable以更好地支持方法的运行。

第7章类的连接与初始化

第8章运行时数据区

第9章类对象的创建

第10章垃圾回收

第11章Serial垃圾收集器

第12章Serial Old垃圾收集器

第13章Java引用类型

最后

本书围绕Java最流行的HotSpot VM进行源码的深度剖析,主要面向那些想要深入学习 和研究Java语言运行原理的人。本书对那些正在从事或将来想要从事虚拟机开发的编程人员 也有极大的帮助。另外,对于Java求职人员来说,在参加大型互联网公司的面试时,应对招 聘企业对虚拟机相关知识的深度考查已成为不可回避的问题,本书正好能提高他们对虚拟机 理解的广度和深度,可谓雪中送炭。

需要这份的小伙伴——【传送门】获取~