Java解释器和JVM之间的区别

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

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

是,有一点不同。

Java虚拟机:

软件“执行引擎”,安全且兼容地执行微处理器(无论是在计算机中还是在另一个电子设备中)上的Java类文件中的字节代码。

Java解释器:

一个模块,交替解码并执行某些代码体中的每个语句。 Java解释器解码并执行Java虚拟机的字节码。

Java解释器实际上是JVM的一部分。 虚拟机不只是执行字节码,还有很多任务要做。 这个成熟的环境被称为JVM。

检查:

  • Java虚拟机

  • Java SE HotSpot概览

简而言之,JVM解释字节码,Java解释器解释Java。 它们是不同的,因为字节码和Java是不同的语言。

字节码是一种低级语言,如机器码。 字节码意味着由称为字节码解释器的程序运行,该程序也称为虚拟机 。 字节码的目的是易于解释

Java是一种更高级的语言,如C或Python。 这些语言也可以解释:您只需编写一个可以运行其代码的程序。 它不必涉及字节码。 只是更高级别的语言更难直接解释。

Java通常是通过首先将Java程序转换为字节码程序来“解释”的。 然后Java虚拟机 (JVM)运行字节码。

但是你可以用这种方式解释任何语言。 如果您将其翻译成正确的字节码,JVM可以解释其他语言。

您也可以直接解释编程语言,无需任何字节码。 一些BASIC解释器只是在源代码中查找BASIC指令并执行它们。 他们不会先用不同的语言制作新节目。 如果你对Java做了同样的事情,它将是一个Java解释器,但不是一个JVM。

首先,可以将(理论上)任何语言的代码编译成JVM字节码,以允许在该环境中执行。 Java解释器只能运行Java代码。

调用JVM Java解释器是不正确的。 JVM是一个编译和运行字节码的JIT编译器。 其他语言可以编译为针对JVM的字节码。 维基百科文章详细介绍了这些语言。

据我了解……

Java解释器执行字节代码行作为要执行的命令。 执行字节代码。

JVM获取字节代码并生成机器代码。 字节代码被编译为机器代码,并执行机器代码。

java虚拟机是一个虚拟处理器,java解释器是java tool.thanks