java - java如何使用编译器

标签 java compiler-construction interpreter jit

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

我的问题是java如何使用JIT(Just In Time)编译器?处理器的架构不会影响它吗?如果不影响的话,那为什么不影响呢?

最佳答案

不只有一个 JIT 编译器。每种架构都有不同的架构,因此有一个适用于 Windows 32 位,一个适用于 Windows 64 位等等。

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

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

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

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

enter image description here

关于java - java如何使用编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45384566/

相关文章:

java - 如何在调试时暂停自定义解释器?

javascript - 可以有条件地解析 Javascript 代码吗?

javax.annotation.processing.AbstractProcessor : compiling generated code

java - 我怎样才能正确地将数据分配给两个消费者?

python - 针对 .pyc 文件的编译器?

c - 英特尔VS。寻址 xmm 和 float 指令时的 AT&T 语法

java - 打印给定字符串中所有可能的子字符串,不重复字符

java - Android:/data/local/tmp/* 权限被拒绝

Objective-C 编译器和编辑器

java - 如何用Java制作自己的解释器?