Sun/Oracle 公司研发的热门虚拟机有三个:Classic VM / Exact VM / HotSpot VM
Classic VM : 基于句柄 (Handle) 的对象查找方式,需要外挂 JIT
Exact VM :优于 Classic VM ,使用了准确式内存管理(记录内存中存储的类型是地址还是数值),丢弃句柄,内置 JIT,支持热点代码探测(通过计数器找出有编译价值的代码,然后通过即时编译器以方法为单位进行编译,同时也可能触发栈上替换编译(OSR))。
HotSpot VM :与 Exact VM 基本一致的功能,因非技术原因从与 Exact VM 的竞争中获得胜利。
BEA System 的 JRockit 虚拟机
专注于服务端的应用,不太关注程序启动速度,所以内部不含解释器实现,代码全靠即时编译器编译执行。被 Oracle 收购后 于JDK 6 发布了最后一版并且停止更新。
IBM J9 虚拟机
由 IBM Otawa 实验室的 SmallTalk 虚拟项目K8(因为曾经有个 8KB 常量定义引起的错误,很久后才解决,所以虚拟机叫 K8)拓展而来,支持 Java 语言所以命名为 J9。
J9 的定位与 HotSpot VM 类似,全面考虑服务端/桌面端/嵌入式,在 2016 年开源并更名为 OpenJ9。