前言
Java是一门流行多年的高级编程语言,与其相关的就业岗位很多,但是最近几年却出现了用人单位招不到合适的人,而大量Java程序员找不到工作的尴尬局面。究其根本原因是岗位对Java开发技术的要求高,不但要会应用,而且更要懂其内部的运行原理。对于想要深入研究Java技术的从业人员来说,虚拟机是绕不开的话题。目前国内市场上还鲜见一本全面、 细致、深入剖析Java虚拟机源码的书籍,这正是本书要填补的市场空白
本书着重于Java虚拟机HotSpot的源码分析。开篇先从源码的构建开始讲解,然后逐步深入介绍HotSpot的类的加载机制、对象的二分模型和Serial垃圾收集器等相关知识。本书内容丰富,讲解循序渐进,除了翔实的源码剖析外,还结合大量图示和实例帮助读者深入理解相关知识,对于想对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中含有虚函数表,可以进行方法的分发。