1. JVM是否在没有CPU帮助的情况下执行某些指令,或者在所有指令的帮助下获取CPU的帮助?
2.当JVM使用JIT编译器时,它只是使用CPU执行,否则它在使用解释器时会执行指令本身吗?
答案 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,将英语翻译为匈牙利语。)