文章总体结构
本文中,我们将按照如下结构介绍JVM的整体架构和调优参数。
JVM的分类
这里,我们先来说说什么是VM吧,VM的中文含义为:虚拟机,指的是使用软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统,是物理机的软件实现。
常用的虚拟机有:VMWare、Virtual Box,Java Virtual Machine(JVM,Java虚拟机)。
这里,我们重点聊的就是JVM,Java虚拟机。看下图。
这张图看起来还是比较简单的,JVM运行于操作系统之上,操作系统是运行在计算机硬件上的。
关于JVM,其实有很多大厂开发了不同版本的JVM,比较知名的有:Sun HotSpot VM、BEA JRockit VM、IBM J9 VM、 Azul VM、 Apache Harmony、 Google Dalvik VM、 Microsoft JVM等等。
现在使用的比较多的JDK8版本就是Sun HotSpot VM与BEA JRockit VM合并之后开发出的JDK版本。
JVM的构成
JVM主要由三个子系统构成,分别为:类加载器子系统、运行时数据区(内存结构)和字节码执行引擎。
为了更好的理解JVM,我们来看一下JVM的全貌图。
当我们开发Java程序时,首先会编写.java文件,之后,会将.java文件编译成.class文件。
JVM中,会通过类装载子系统将.class文件的内容装载到JVM的运行时数据区,