(先做记录,以免遗忘)
JIT:
这是一个对编译方法的称呼概念,并不是虚拟机。全称 just-in-time compilation,运行时编译的意思,要运行代码就先编译,编译完成后再执行。
AOT:
这是一个对编译方法的称呼概念,并不是虚拟机。全称Ahead Of Time,指运行前编译,即不管有没运行的代码,运行前会全部编译一次。
hotspot:
这是一个虚拟机名称。采用的编译方法是热点编译,即第一次运行代码使用解释器并不编译;当同一片代码多次运行,那么虚拟机将以方法为单位编译为字节码,被编译的代码变为“热点”,高效执行。
JRockit:
这是一个虚拟机名称。采用的是多重编译,初次运行做低层次编译,多次运行代码被判断为热点,进行深度编译。
注:JDK8之后oracle公司已将hotspot和JRokit合并,名称仍叫“hotspot”。
IBM J9
这个虚拟机自己看吧
参考文献:
维基百科Comparison of Java virtual machines https://link.zhihu.com/?target=http%3A//en.wikipedia.org/wiki/Comparison_of_Java_virtual_machines
HotSpot是较新的Java虚拟机技术,用来代替JIT技术,那么HotSpot和JIT是共存的吗?https://www.zhihu.com/question/26913901
什么是HotSpot VM & 深入理解Java虚拟机 JVM https://www.cnblogs.com/charlesblc/p/5993804.html
目前主流的 Java 虚拟机有哪些? https://www.zhihu.com/question/29265430
AOT,JIT区别,各自优劣,混合编译 https://blog.csdn.net/h1130189083/article/details/78302502