我真的很难理解以下事情
之前我知道:
当Java程序被编译时,会生成.class
文件。在这个文件中代码以字节形式存在。然后JVM
将把这些字节码转换成机器可读的格式。
现在我在SO的一个问题中看到了以下内容
即时编译器(JIT)是运行时解释器的一项功能,它不会在每次调用方法时都解释字节码,而是将字节码编译成正在运行的机器代码指令
所以在这里,JIT将字节码转换为机器指令。那么JVM的作用是什么?我们能够通过JIT做到这一点。在我的认识中,JIT只是用来改善JVM的性能。
它会在即时编译器中进行优化,以便与JVM兼容。