- Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。
- 什么是字节码?采用字节码的好处是什么?
在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以 Java 程序运行时比较高效,而且,由于字节码并不针对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同操作系统的计算机上运行。 - Java 程序从源代码到运行一般有下面 3 步:

a. java 文件转化.class 是一次性全部进行编译,故其是编译型语言;
b.class->机器码 。 首先,JVM 类加载器加载字节码文件;然后,解释器逐行解释执行,该方式执行速度相对较慢,且有些方法和代码块是经常被调用(即热点代码),故进一步引进 JIT 编译器( JIT 属于运行时编译)。当 JIT 编译器完成第一次编译后,会将其字节码对应的机器码保存下来,下次可以直接使用。机器码的运行效率肯定是高于 Java 解释器的,这也解释了Java 是编译与解释共存语言。
总结:JVM是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,其均会给出相同的结果。字节码和不同系统的 JVM 实现是 Java 语言“一次编译,随处可以运行”的关键所在。
Java字节码是Java程序编译后的中间表示,独立于特定处理器,由Java虚拟机(JVM)解释执行。JVM有不同平台的实现,确保字节码在各系统上的兼容性。字节码带来跨平台能力和高效的执行,通过JIT编译器,将热点代码编译为机器码,提高运行效率。Java程序从源代码到运行,经历编译成字节码、JVM加载解释执行及JIT编译的过程,实现了编译与解释并存,确保了运行时的高效和移植性。
9万+

被折叠的 条评论
为什么被折叠?



