JVM、JVM规范、JVM实现是什么关系?
文章目录
什么是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虚拟机。开源项目。
参考资料
《深入理解Java虚拟机(第3版)》
文章作者 xiaoqi
上次更新 2020-04-26