【JVM】两个小点

为什么Java号称是一次编译到处运行?

   Java底部存在有native方法 -->Java本地调用JNI ,实际上是JAVA 在调用C语言。

   例如在每个系统中实现打开文件操作流程如下,只需要有对应版本的JRE,便可运行JAVA文件。故Java只需要经过一次编译便可运行在其它任何地方。

   这与C语言不同,例如用C编写的游戏软件,若想分别运行在windows和Linux环境下,其本身要进行两次编译,形成不同版本的字节码文件。

Java是解释执行还是编译执行的

   在jdk1.0之前,Java曾经是解释执行的,1.0之后java采用混合执行机制(解释+编译)。如下图:

   1.0之后会通过阈值模型或者采样模型,找出热点代码块进行即时编译形成机器指令,大大提高了java编译文件的速度。

发布了20 篇原创文章 · 获赞 8 · 访问量 3079

猜你喜欢

转载自blog.csdn.net/weixin_40423032/article/details/104375980