程序执行的步骤

1 java bytecode machine-code

经过几个小时的研究,我没有找到一个具体的答案来解决我的问题而且我要疯了!

从编辑到执行的步骤:

1.(编译步骤)编写源代码后,编译程序.在此步骤中,它将转换为字节码.生成java.class文件(字节码).

2.(执行步骤)现在我执行程序.

  1. (解释步骤)当我这样做时,JVM将字节码解释为机器码.所以我明白机器代码只是在执行后生成的!

现在的步骤是:代码 - >字节码 - >执行 - >机器码

所有这些步骤都与硬件和软件无关. 我对吗?

这称为JIT(只是及时编译),因此当我执行程序时,字节码被编译成机器码,然后才编译. 那么为什么这一步称为解释?

我提前感谢你的答案!

Kay*_*man 5

总之,因为JVM不会有JIT.它可以解释字节码而不是编译它.当然,仅解释JVM会很慢,但JIT部分只是提高性能的额外功能,而不是Java虚拟机的必需属性.该-Xint命令行参数可被用来运行在解释只读模式的Java程序.

它被编译为字节码而不是机器代码的原因是为了获得平台独立性.字节码独立于平台,因此相同的代码可以在任何平台上运行(只要有JVM就可以解释它).如果它被编译成机器代码,那将依赖于操作系统和处理器体系结构.