混合语言编程
不同语言都可以通过各自对应的编译器生成结构相同的字节码文件,JVM只认识字节码。JVM加载字节码文件,通过不同操作系统转换为对应的机器码。
JVM的发展及种类
Sun Classic VM :只提供Java解释器,解释执行Java代码,高响应速度。将字节码指令翻译为CPU认识的机器指令(0、1),一行一行翻译。可以外挂即时编译器,基于热点探测(相同命令可以缓存机器指令),提高效率。解释器(高响应速度)与编译器(效率高)只能选一个。
Exact VM :解释器与编译器可以混合运行,响应和效率可以平衡。但只能运行在Sun Solaris操作系统平台。是现代JVM的前身。
Hotspot VM :1.3后默认的虚拟机,同时支持解释器与编译器,响应和效率可以平衡,所有平台都可以使用,只有Hotspot 才有方法区(永久代)。
JRockit VM :被Oracle收购,最快的JVM,只专注于服务器端,只包含编译器,所以服务器应用程序启动时间长,但执行相率快。
IBM J9 VM :包含了解释器与编译器,对IBM自家产品优化好。
Taobao VM :基于OpenJDK Hotspot改造,为淘宝量身打造。
Oracle JDK 与OpenJDK的异同:默认都是用Hotspot。Oracle JDK只能个人研究使用,OpenJDK允许商用,Oracle JDK未经授权不能进行商业开发牟利。Oracle JDK功能更全,OpenJDK只包含了JDK的核心,其他组件要自己安装。OpenJDK无法通过TCK测试(成千上万的测试用例,覆盖JVM每一个规范),开发的商品不能使用Java商标,经Red Hat补全已经通过TCK。
JVM的组成
原文:https://www.cnblogs.com/yinrz/p/13561762.html