JVM

JVM_学习手册

JVM 进阶之路

Posted by YS on November 6, 2020

前言

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基础系列」专栏是不错的入门文章。比起书籍来说,其特点在于简单易懂,并且关联性强。但是正因为讲究关联,所以也省略了一些内容。所以当你阅读完上述系列文章后,可以阅读以下书籍。

参考