字节”再次起跳!内部 651 页剖析 HotSpot 源码手册,GitHub 开源
如何快速切入 Java 虚拟机领域?
小编记得 2 年前开始研究 Java 虚拟机时,查遍了网上所有的资料,凡是能遇到一点好的关于 Java 虚拟机的资料,我都会认真读、一遍读不懂没关系,小编都会搬到自己的日志中记录下来,后面就是对这些日志进行分类整理,然后加上我的理解后不断加工,最后内化成自己的东西。现在市面上系统介绍 Java 虚拟机的书籍非常少,细致全面的书籍更是市场空白,所以我把我这几年的所学写成了这本“深入剖析 Java 虚拟机源码剖析与实例详解(基础卷)”,本书以通俗易懂的语言详细介绍 Java 虚拟机 HotSpot 的源码实现,可以帮助读者系统掌握类的生命周期和垃圾回收等基本组件的相关知识。对于想全面了解 HotSpot 虚拟机工作原理和源码实现的广大 Java 程序员来说,本书可谓雪中送炭,值得细读。
![](https://static001.geekbang.org/infoq/31/31ff0dd5d195601aa12002303382075d.png)
内容简介
第 1 章主要介绍本地编译 HotSpot VM 的具体过程,以及如何使用图形化工具对 HotSpotVM 的源代码进行调试。
![](https://static001.geekbang.org/infoq/bf/bf4f65a85601fd93160ab077206b6d97.png)
![](https://static001.geekbang.org/infoq/90/90bdb2870e48d3fd68c67789416e0351.png)
第 2 章介绍类的二分模型,其中表示 Java 类的 Klass 模型与表示 Java 对象的 oop 模型是 HotSpot VM 的最基础部分。
![](https://static001.geekbang.org/infoq/df/df9d9f1996c72360bc76f7c648a8d7a5.png)
![](https://static001.geekbang.org/infoq/4c/4c6c10096f6907d99d591f733bf1c9e1.png)
第 3 章介绍类的加载,重点介绍核心类和数组类的加载过程,以及类加载的双亲委派机制。
![](https://static001.geekbang.org/infoq/0d/0d4ef21d20156b8fae9c6452b4c3cc39.png)
![](https://static001.geekbang.org/infoq/3c/3cb810d4907857bb9b12a246fcd54249.png)
第 4 章对类及常量池进行解析,按照 Class 文件的格式从 Class 文件中解析出存储的类及常量池信息,然后映射成 HotSpot VM 内部的表示形式。
![](https://static001.geekbang.org/infoq/c6/c639822906dc676f6852359d1406ce80.png)
![](https://static001.geekbang.org/infoq/6c/6c92acd47c9eb46e5b27e008fc5053b0.png)
第 5 章对字段进行解析,解析出 Class 文件中保存的字段信息后映射为 HotSpot VM 内部的表示形式,同时还要对实例字段进行布局。
![](https://static001.geekbang.org/infoq/95/95613f1ada52d0eacae2752d0cb2565f.png)
![](https://static001.geekbang.org/infoq/5e/5efb9accc1d31afd94a97e935e1e14ea.png)
第 6 章对方法进行解析,解析出 Class 文件中保存的方法信息后映射为 HotSpot VM 内部的表示形式,并初始化 klass Vtable 与 klassItable 以更好地支持方法的运行。
![](https://static001.geekbang.org/infoq/ce/ceaf74b1a6b54c5dd10980dc2adbe74f.png)
![](https://static001.geekbang.org/infoq/ea/ea9c69d1402855f2022ed78337c6e10f.png)
第 7 章介绍类的连接和初始化过程。
![](https://static001.geekbang.org/infoq/28/283286745ec3ec4c465784a4d525b4cb.png)
![](https://static001.geekbang.org/infoq/f7/f7534fe99e52867ce3cdb00d10b71dee.png)
第 8 章介绍 HotSpot VM 的内存划分,重点介绍元空间和堆空间,如元空间的数据结构及其内存分配和释放,以及堆的初始化和回收策略等。
![](https://static001.geekbang.org/infoq/49/49714936cbc5bfa49377034b7050bc5a.png)
![](https://static001.geekbang.org/infoq/7d/7dba3c331b78e6e10acca77b9ac0f278.png)
第 9 章介绍 Java 对象的创建过程,重点介绍对象内存分配的具体过程。
![](https://static001.geekbang.org/infoq/22/226d62fbd1bdc58b8abcbbc47d122a48.png)
![](https://static001.geekbang.org/infoq/66/66100d2d512d6bf13cb8b53dfaf6dcca.png)
第 10 章介绍垃圾回收的基础知识,包括垃圾回收算法、支持分代垃圾回收的卡表和偏移表、支持垃圾回收的安全点。
![](https://static001.geekbang.org/infoq/2d/2d9e5fe7d75c3c1a4e169f0f332314b7.png)
![](https://static001.geekbang.org/infoq/a7/a72782c8a458197e7427f813836a9bae.png)
第 11 章介绍用于回收年轻代的 Serial 垃圾收集器。
![](https://static001.geekbang.org/infoq/36/36a207e95b8a9d09f6a765323174e766.png)
![](https://static001.geekbang.org/infoq/d1/d1b7ccaf95a1b7589e914678920811e2.png)
第 12 章介绍用于回收老年代的 Serial Old 垃圾收集器。
![](https://static001.geekbang.org/infoq/d7/d7ee99b102f28609feb7d4047745ac3d.png)
![](https://static001.geekbang.org/infoq/cb/cbc6b89e8a50e197220f677c349f9856.png)
第 13 章介绍 Java 引用类型,包括引用类型的查找及不同类型引用对象的回收处理逻辑。
![](https://static001.geekbang.org/infoq/5d/5d42ee6525fce5f71caedc51f5d43fbf.png)
![](https://static001.geekbang.org/infoq/3e/3eb3d8d7220ee839beb056a3384a238e.png)
需要领取这份资料的同学们麻烦帮忙点赞文章+关注小编,扫码!!即可免费获取哦!童叟无欺!
![](https://static001.geekbang.org/infoq/6b/6b3813d37c9ec3d3c4c6b7e7df0c7250.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
评论