Java解释器和JVM之间的区别

时间:2010-08-09 17:06:57

标签: java programming-languages interpreter

我听过有人说“JVM必然是Java解释器,但Java解释器不一定是JVM”。这是真的吗?

我的意思是Java解释器和JVM之间有区别吗?

6 个答案:

答案 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