什么是JVM?

JVM,Java Virtual Machine的英文缩写。是一个可以运行Java字节码的虚拟机应用程序。

此处的JVM指的就是JVM实现

JVM规范

JVM规范(JVM Specification),定义了JVM的具体实现细节。

JVM规范基于不同的Java SE版本,每个Java SE不同版本的JVM规范有些许差别。所以在学习它之前,先选定Java SE的版本。

JVM实现

JVM的具体实现(JVM Implementation)是基于JVM规范来完成的。

JVM实现基于特定的JVM规范,实现JVM规范的方法有很多,所以会出现多种的JVM实现。

常见的JVM实现有如下几种:

HotSpot VM — Sun/OracleJDK和OpenJDK默认Java虚拟机,开源,最初源自Longview Technologies公司开发,后来被Sun公司收购,最终Sun公司被Oracle公司收购。

Eclipse OpenJ9 — IBM基于JVM规范研发,名为IBM J9。后来开源,并捐献给Eclipse基金会管理,项目名为OpenJ9。

JRockit JVM — 曾经BEA Systems公司的专有JVM,后被Oracle收购并集成到HotSpot VM中。

Zing JVM — Azul Systems公司的产品,在HotSpot基础上重新研发,作为专有JVM。支持TB级堆内存管理,响应速度不超过10毫秒。比HotSpot更加高效。

Alibaba JVM — Alibaba基于HotSpot深度定制版(Alibaba Dragonwell8 JDK)。

Maxine VM — Meta-Circular虚拟机,用Java语言实现其运行环境的Java虚拟机。开源项目。

参考资料

官方JVM规范

维基百科JVM

维基百科JVM列表

alibaba JDK

《深入理解Java虚拟机(第3版)》