为什么JVM被命名了?是因为它像CPU那样充当硬件吗?

时间:2016-10-18 16:43:31

标签: java jvm jit

1. JVM是否在没有CPU帮助的情况下执行某些指令,或者在所有指令的帮助下获取CPU的帮助?

2.当JVM使用JIT编译器时,它只是使用CPU执行,否则它在使用解释器时会执行指令本身吗?

  1. 如果JVM在没有CPU的情况下执行某些指令,则给出这种指令的示例以及只能由CPU执行的指令。 请解释JVM使用解释器时以及何时使用JIT编译器时的执行过程?

2 个答案:

答案 0 :(得分:3)

  

为什么JVM被命名为?

JVM代表Java虚拟机。它已被命名为,因为它是为运行Java字节码而设计的Virtual Machine

  

JVM是否在没有CPU帮助的情况下执行某些指令,或者在所有指令中获取CPU的帮助?

JVM本身由CPU运行。你认为这是“帮助”吗?如果是,那么是的。

当JVM以“解释模式”运行字节码时,它将采取所需的操作,而不将字节码转换为CPU运行的机器码。因此,可以认为不是“帮助”CPU。解释器本身当然是由CPU运行的,所以你要找的答案就是折腾。

  

当JVM使用JIT编译器时,它只是使用CPU执行,否则它在使用解释器时会自己执行指令吗?

参见上一个答案。

  

如果JVM在没有CPU的情况下执行某些指令,那么举例说明这种指令以及只能由CPU执行的指令?

可以解释所有字节码指令。其中没有必须被JIT编译为机器代码。

  

请解释JVM使用解释器时以及使用JIT编译器时的执行过程。

超出StackOverflow范围的方法来解释所有这些。有为此而写的书。

答案 1 :(得分:0)

Java虚拟机是一个中间人 - 它理解编译的Java代码处理器的机器代码。它将编译的Java代码转换为机器代码。编译的Java代码与e 不同。 G。已编译的C / C ++代码,因为已编译的C / C ++代码是直接用于计算机处理器的机器代码(当然,它稍微简化了)。

另一种方法:
C / C ++编译的结果是.exe文件(在Windows中),而Java编译器生成.class文件(在所有操作系统中)。 Java虚拟机将此.class文件转换为处理器的机器代码。

还有另一种解释:
您的处理器只能理解一种特定语言,例如: G。的立陶宛语即可。
Java就像通用语言一样,英语就是。几乎所有人都理解英语,因此用英语编写故事足够聪明。
您计算机中的JVM是本地翻译 - 它将英语翻译为立陶宛语
(在另一台计算机中,例如匈牙利语其他 JVM,将英语翻译为匈牙利语。)