我听过有人说“JVM必然是Java解释器,但Java解释器不一定是JVM”。这是真的吗?
我的意思是Java解释器和JVM之间有区别吗?
答案 0 :(得分:16)
是的,有区别。
Java虚拟机:
软件“执行引擎”,可以安全地兼容地执行微处理器上的Java类文件中的字节代码(无论是在计算机中还是在其他电子设备中)。
Java解释器:
一个模块,它交替解码并执行某些代码体中的每个语句。 Java解释器解码并执行Java虚拟机的字节码。
Java解释器实际上是JVM的一部分。虚拟机不只是执行字节码,还有很多任务要做。这个成熟的环境被称为JVM。
检查:
答案 1 :(得分:8)
简单地说,JVM解释字节码,Java解释器解释Java。它们是不同的,因为字节码和Java是不同的语言。
字节码是一种低级语言,就像机器代码一样。字节码应由称为字节码解释器的程序运行,该程序也称为虚拟机。字节码的目的是易于理解。
Java 是一种更高级的语言,如C或Python。这些语言也可以解释:您只需编写一个可以运行其代码的程序。它不必涉及字节码。只是更高级别的语言难以直接解释。
Java通常是通过首先将Java程序转换为字节码程序来“解释”的。然后 Java虚拟机(JVM)运行字节码。
但你可以用这种方式解释任何语言。如果您将其翻译成正确的字节码,JVM可以解释其他语言。
您也可以直接解释编程语言,无需任何字节码。一些BASIC解释器只是在源代码中查找BASIC指令并执行它们。他们不会先用不同的语言制作新节目。如果你对Java做了同样的事情,它将是一个Java解释器,但不是JVM。
答案 2 :(得分:0)
首先,来自(理论上)任何语言的代码都可以编译成JVM字节码,以允许在该环境中执行。 Java解释器只能运行Java代码。
答案 3 :(得分:0)
调用JVM Java解释器是不正确的。 JVM是一个编译和运行字节码的JIT编译器。其他语言可以编译为针对JVM的字节码。 Wikipedia article detailing such languages.
答案 4 :(得分:0)
据我所知......
Java解释器执行字节代码行作为要执行的命令。执行字节代码。
JVM获取字节代码并生成机器代码。字节代码被编译为机器代码,并执行机器代码。
答案 5 :(得分:0)
java虚拟机是虚拟处理器,java解释器是 java tool.thanks