JVM虚拟机(1) 走进Java
2017-12-18 本文已影响13人
木子李_af14
Java
JDK
Java程序设计语言 + Java虚拟机 + Java API类库
JRE
Java API类库中的JAVA SE API子集 + Java虚拟机
JVM
Sun Classic / Exact VM
- Sun Classic VM
这是世界上第一款商用的JAVA虚拟机,在JDK 1.0时带的就是这款虚拟机,但这款虚拟机只能用纯解释器的方式执行Java代码,要使用JIT(just-in-time)编译器,就必须使用外挂。在当时使用时,给用户留下了“Java语言很慢”的形象。 - Exact VM
Exact VM,初步具备了高性能虚拟机的雏形,如两级即时编译器、编译器和解释器混合工作模式等。Exact VM具备准确式内存管理,既虚拟机可以知道内存中某个位置的数据是什么类型,在这个前提下,才能在GC的时候判断出数据是否还在被使用。 - Sun HotSpot VM
Sun JDK 和 OpenJDK中所带的虚拟机(但并不是Sun公司研发的,还是收购来的)。从这款虚拟机的命名可以看出,它也携带了Exact VM的准确式内存管理功能,再进一步说,HotSpot VM的热点代码探测能力可以通过执行计数器找出最具有编译价值的代码,然后通过JIT编译器以方法为单位进行编译。 - Sun Mobile-Embedded VM / Meta-Circular VM
用于移动端、嵌入式、或用于研究、验证某些技术的产品。 - BEA JRockit / IBM J9 VM
BEA公司将JRockit VM发展为一款专门为服务器硬件和服务器端应用场景高度优化的虚拟机,JRockit内部不包含解析器实现,全部代码都靠即时编译器编译后执行。 - Azul VM / BEA Liquid VM
Azul VM是Azul公司在HotSpot的基础上进行了大量改进,专用于特定硬件平台的虚拟机。而Liquid VM就是现在的JRockit VM的虚拟化版本(JRockit VE, Virtual Editoin)