首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java如何使用编译器

java如何使用编译器
EN

Stack Overflow用户
提问于 2017-07-29 02:11:07
回答 2查看 82关注 0票数 0

我研究了要在不同处理器架构上执行的地方,对Java进行了解释。如果它使用编译器,那么就会有一些指令(机器代码),这些指令将特定于处理器体系结构,而Java将依赖于平台。但是由于java使用解释器,所以它是独立于处理器架构的。

我的问题是java如何使用JIT (刚好及时)编译器?处理器的架构不影响它吗?如果它不影响它,那它为什么不影响它呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-29 02:37:45

不只是一个JIT编译器。每个体系结构都有不同的架构,所以Windows 32位有一个,Windows 64位有一个等等。

您的Java代码在所有平台上都是相同的。由Java编译器编译成字节码。所有平台的字节代码也是相同的。

现在我们在Windows 32位上运行您的Java程序.JVM启动并解释字节代码并将其转换为该体系结构的机器代码。请注意,JVM专门用于此体系结构。

如果我们在另一个体系结构上运行您的程序,将使用JVM的另一个变体来解释字节代码。

这就是为什么在下载JRE时看到所有这些不同的下载链接的原因:

票数 5
EN

Stack Overflow用户

发布于 2017-07-29 02:51:04

java程序生命周期如下所示。源代码被编译成architecture (也称为.class文件),然后由JVM解释architecture,它执行即时编译,发送您特定处理器架构可以理解的指令。

重要的是要明白,编译只是“翻译”的另一种说法,并不总是意味着编译为二进制。另外,解释也是相似的,但每条指令都是根据程序的需要进行的。

但更具体地说,在您的问题中,JIT是由JVM完成的解释,它专门为每个处理器体系结构编写代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45384566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档