前言
JVM作为Java语言的基础,虽然平时工作中真正运用到的时候可能并不多,一个程序员想要上升到高级层次,那就必须知道Java到底是怎么运行的,这就逃不开JVM。想要告别增删改查和简单开发,而是去做Java性能分析和调优工作,那么,Java虚拟机绝对是一把助力的利剑。学习Java虚拟机的原因,本质是让你了解Java程序是如何被执行且优化的。这样一来,你才可以从内部入手,达到高效编程的目的。同时,你也可以为学习更深层、更核心的Java技术打好基础。
为什么要学JVM
关键词:为什么要学JVM
对于初学者来说,首先理解为什么要学虚拟机是最重要的,关于这块内容建议阅读以下这篇文章
JVM到底是什么
关键词:JVM到底是什么
当你明白为什么要学虚拟机之后,你需要明白:到底什么是虚拟机?这时候建议阅读以下这篇文章:
编译器原理
看到这里,我相信你应该对虚拟机有了一个感性的认识了。那么接下来你需要继续深入学习,明白编译器是如何将 java 文件编译成 class 文件的。这时候你需要学习:编译器以及字节码文件相关知识。这时候推荐阅读下面几篇文章
JVM 是如何将字节码文件的内容加载到内存
关键词:Java 类加载机制、JVM 内存模型
看到这里,你应该明白了不少知识,我们的源文件(java文件)也顺利编译成了字节码文件(class文件)。接下来就是运行程序并输出结果了,那么 JVM 是如何将字节码文件的内容加载到内存的(类加载机制),加载到内存之后又是如何进行数据存放的(JVM内存模型)。这个时候你应该学习:Java 类加载机制、JVM 内存模型,这时候推荐阅读下面几篇文章
Java 垃圾回收机制
关键词:Java 垃圾回收机制、Java 回收器
当我们把数据加载并存放于内存之后,就又有一个问题出现了:内存是有限的,那么势必会涉及到内存回收的问题。这时候你应该学习 Java 垃圾回收机制、Java 回收器的相关内容。这时候推荐下面几篇文章:
JVM 排查
关键词:JVM 参数, JVM 的排查工具
学习到这里,你对 JVM 有了一个全面的了解。从源文件到字节码,从字节码到机器码,从机器码到内存模型,从内存到垃圾回收。你对 JVM 的基础知识也掌握得差不多了,但是如果要进行线上问题排查的话,还差一些排查知识的学习。这时候需要学习常见的 JVM 参数以及 JVM 的排查工具,这时候推荐下面几篇文章:
JVM 进阶书籍
到了这里,你不仅掌握了基础的 JVM 理论知识,还掌握了一些基础的问题排查技巧。接下来你要做的就是多学习一些 JVM 的问题排查案例,在实战中不断总结 JVM 排查的技巧,从而夯实自己的理论基础。在关于 JVM 这块知识,我上面列出的「JVM基础系列」专栏是不错的入门文章。比起书籍来说,其特点在于简单易懂,并且关联性强。但是正因为讲究关联,所以也省略了一些内容。所以当你阅读完上述系列文章后,可以阅读以下书籍。