java从编码到执行
x.java 通过javac这个命令,会编译成一个x.class,最后通过ClassLoader加载到Jvm中,通过字节码解释器或者JIT(即时编译器)编译后,交给执行引擎,最后直接调用硬件执行。
1 什么是JVM
jvm是一套规范,不同的大公司有自己的实现,它其实和java本身没有太大关系,只与class文件有关系,所有的语言,只要可以转换成class文件,JVM都可以执行。所以说JVM其实是一个跨语言的平台。而Java是一门跨平台的语言(即同一段Java代码,在windows linux都可以无需修改,直接运行)
常见的实践:
Hotspot:oracle官网,目前绝大部分用的都是这个实现
J9 - IBM
Microsoft VM 微软
TaobaoVM hotspot深度定制版
LiquidVm 直接针对硬件
azul zing 最新垃圾回收的业界标准,网站:www.azul.com 收费产品
JDK包含(JRE + Development kit)JRE(JVM + core lib核心类库) JVM只负责执行
资料链接:
JVM13规范文档:docs.oracle.com/javase/specs/jvms/se13/jvms13.pdf
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。