我研究了要在不同处理器架构上执行的地方,对Java进行了解释。如果它使用编译器,那么就会有一些指令(机器代码),这些指令将特定于处理器体系结构,而Java将依赖于平台。但是由于java使用解释器,所以它是独立于处理器架构的。
我的问题是java如何使用JIT (刚好及时)编译器?处理器的架构不影响它吗?如果它不影响它,那它为什么不影响它呢?
发布于 2017-07-29 02:37:45
不只是一个JIT编译器。每个体系结构都有不同的架构,所以Windows 32位有一个,Windows 64位有一个等等。
您的Java代码在所有平台上都是相同的。由Java编译器编译成字节码。所有平台的字节代码也是相同的。
现在我们在Windows 32位上运行您的Java程序.JVM启动并解释字节代码并将其转换为该体系结构的机器代码。请注意,JVM专门用于此体系结构。
如果我们在另一个体系结构上运行您的程序,将使用JVM的另一个变体来解释字节代码。
这就是为什么在下载JRE时看到所有这些不同的下载链接的原因:

发布于 2017-07-29 02:51:04
java程序生命周期如下所示。源代码被编译成architecture (也称为.class文件),然后由JVM解释architecture,它执行即时编译,发送您特定处理器架构可以理解的指令。
重要的是要明白,编译只是“翻译”的另一种说法,并不总是意味着编译为二进制。另外,解释也是相似的,但每条指令都是根据程序的需要进行的。
但更具体地说,在您的问题中,JIT是由JVM完成的解释,它专门为每个处理器体系结构编写代码。
https://stackoverflow.com/questions/45384566
复制相似问题