JVM

写给小白的JVM学习指南

Posted by 陈树义 on 2019-05-05

Java 虚拟机是学习 Java 的基础,也是迈入高级 Java 开发工程师的必备知识点。所以今天这篇文章我们来聊聊如何从零开始学习 Java 虚拟机。

基础

对于刚刚接触 JVM 的同学来说,JVM 就像一个黑盒一样,完全不知道这是一个什么东西。所以对于小白来说,最重要是搞清楚 JVM 到底是干嘛的,以及其常用的知识框架。针对这样的需求,我之前写过一个 JVM 系列文章,从零开始循序渐进地介绍了 JVM,相信是很不错的 JVM 入门教程。

看完了我写的教程之后,你应该对 JVM 有了基本的理解。这时候你可以看一下**《深入理解Java虚拟机》**,这本书是国内学习 JVM 的必备书籍。通过阅读这本书,你对 JVM 的一些知识点会了解得更加全面。

实战

当你对 JVM 有了一定的认知,这时候就可以尝试去解决一些 JVM 问题了。在这个阶段推荐的书籍是:《Java虚拟机实战》 。与《深入理解Java虚拟机》不同,这本书更加侧重于实战,有许多的实战例子。

看完《Java虚拟机实战》之后,你基本上知道如何排查 JVM 问题。但是你只是掌握了理论技能,你要在工作中争取到线上排查的机会,把你的理论付诸于实践。只有不断地融合和实践,才能使得你的经验非常丰富(还记得之前说过的「整体性学习方法」吗?)。

深入

经过理论+实战的洗礼,你已经从一个小白变成了老鸟。但这个时候你或许还会对 JVM 的一些细节不够了解,这个时候你需要阅读《Java虚拟机规范》。因为在这之前你看的《深入理解Java虚拟机》、《Java虚拟机实战》等书籍,全部都是二手信息。而《Java虚拟机规范》则是关于 Java 虚拟机的规定,是一手信息。看完它,我相信你对 Java 虚拟机的理解会更上一层楼。

我看《Java虚拟机规范》的时候写了一些笔记,如果有兴趣可以阅读相关文章。

看完了《Java虚拟机规范》,如果你还有兴趣,那么你可以开始阅读 HotSpot 虚拟机的源码了。所有细节在源码面前都尽显本色,相信到了这一阶段,你已经不需要我的指导了。尽情畅游于 JVM 源码的海洋吧~

总结

JVM 本身比较难懂,但按照我提供的线路图去学习,整个的学习曲线不会很陡。只要愿意付出时间和精力,还是可以很快地学会 JVM 基础知识的。