摘要
本文主要介绍JVM(Java虚拟机)的功能(解释运行、内存管理、即时编译(JIT))和JVM的组成
文章目录
Java程序的执行
.Java文件 --》JavaC编译 --》.class文件(字节码文件) --》 JVM进行实时解释翻译 --》机器码执行
.c文件 --》直接编译为(exe可执行文件)机器码运行
早期Java为了实现垮平台的特性,引入了JVM来兼容不同的操作系统平台,也因JVM的实时解析字节码文件比较耗时,导致了Java程序执行性能相较C/C++语言于弱势。
一、三大功能
解释运行:对字节码的指令实时解释为机器码来运行
即时编译(JIT):将字节码文件中的热点指令解释后的机器码存储在内存中,当热点指令执行时可直接从内存中调用执行,提高程序运行性能,达到接近C/C++的程序性能。Just in time
内存管理:自动为对象/方法分配内存,自动对不再使用的对象进行垃圾回收,释放内存。
二、主流的JVM
”常见的jvm有HotSpot、GraalvM、Openj9等,另外Dragon Well龙井jdk也
提供了一款功能增强版的jvm。其中使用最广泛的是HotSpot虚拟机“
JVM
三、JVM的组成
首先.class文件中的类和接口数据会在ClassLoader中进行存储,然后执行引擎会对字节码文件中的命令进行解释生成机器码给机器执行,过程中生成的对象存放在运行时内存中且会利用即时编译器对热点代码进行优化,通过垃圾回收工具对无用对象进行回收,过程中可能还会调用虚拟机中的一些已经编译的本地方法。