我对 Java 相当陌生,我想知道为什么 Java 与 C 不同,在编译(由 javac)后使用虚拟机(java 程序)来执行代码。
最佳答案
JAVA 是“一次编写,随处运行”
查看链接,让你清楚java工作的整个过程
How is Java platform-independent when it needs a JVM to run?
编译后,代码实际上必须经历一个中间状态,称为bytecode
.然后该字节码被 JVM
占用存在于机器上,然后转换为机器可执行的形式。
JVM
每个不同的平台都不同,但是编译器每次生成的字节码都是相同的。 JVM
执行处理 bytecode
的功能并以您正在使用的平台所理解的形式生成可执行代码。这就是 java 被称为 "Write Once Run Anywhere".
的原因。
关于java - C 和 Java/虚拟机代码执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21810538/