经过几个小时的研究,我没有找到一个具体的答案来解决我的问题而且我要疯了!
从编辑到执行的步骤:
1.(编译步骤)编写源代码后,编译程序.在此步骤中,它将转换为字节码.生成java.class文件(字节码).
2.(执行步骤)现在我执行程序.
现在的步骤是:代码 - >字节码 - >执行 - >机器码
所有这些步骤都与硬件和软件无关. 我对吗?
这称为JIT(只是及时编译),因此当我执行程序时,字节码被编译成机器码,然后才编译. 那么为什么这一步称为解释?
我提前感谢你的答案!
总之,因为JVM不会有有JIT.它可以解释字节码而不是编译它.当然,仅解释JVM会很慢,但JIT部分只是提高性能的额外功能,而不是Java虚拟机的必需属性.该-Xint
命令行参数可被用来运行在解释只读模式的Java程序.
它被编译为字节码而不是机器代码的原因是为了获得平台独立性.字节码独立于平台,因此相同的代码可以在任何平台上运行(只要有JVM就可以解释它).如果它被编译成机器代码,那将依赖于操作系统和处理器体系结构.