当前位置:首页 > 虚拟机 > 正文

java虚拟机是解释器吗


一、Java,Python谁是编译型语言,谁是解释型语Java和Python:哪个是编译语言,哪个是解释语言。
回到最初的问题,如果区别是基于“是否将机器代码保存为exe文件”,那么Java和Python都是解释性语言。
但具体来说,Java和Python有很大不同。Java代码从源程序到执行所经历的过程是:编译器(javac)将源代码转换为字节码,然后解释器()将字节码转换为计算机理解的机器码执行进程中的“机器代码作为exe的行为”(这并不完全正确,下面将讨论)。编译器和解释器都是Java虚拟机(JVM)的一部分,由于Java解释器针对不同的设备和操作系统是不同的,因此可以实现“一次编译,到处运行”。所以JVM是Java实现跨平台特性的关键。
Java虚拟机(JVM)可以以不同模式(软件或硬件)实现的计算设备的规范。编译虚拟机的指令集与编译微处理器的指令集非常相似。Java虚拟机包括一组字节码指令、一组寄存器、一个堆栈、一个垃圾回收堆和一个存储方法域
对于Python来说,执行的源码也经过下过程:源码--->字节码--->机器码。就像Java一样,该过程中不存在“将机器代码另存为exe”的行为。与Java不同,Python使用的虚拟机是基于其他语言实现的,比如我们一般使用的Python是Cpython,也就是说它的虚拟机是用C实现的,这个虚拟机负责Python源代码的编译。在字节码中解释并再次运行。此外还有Jypython、Ironpython等。


二、java的虚拟机编译器解释器都什么关系啊?

Java虚拟机(JVM)可以通过不同方式(软件或硬件)实现的计算机规范。为虚拟机组装指令集与为微处理器组装指令集非常相似。Java虚拟机包括一组字节码指令、一组寄存器、堆栈、垃圾收集堆和存储方法字段。

Java虚拟机(JVM)是可以运行Java代码的虚拟计算机。只要按照JVM规范将编译器移植到特定的计算机上,任何编译后的Java代码都可以保证在该系统上运行。

Java虚拟机是通过在实际计算机上模拟软件实现的虚拟机。Java虚拟机有自己的虚拟机,如处理程序、堆栈、寄存器等,也有相应的指令系统。

参考:


三、虚拟机解释器是不是说的一个东西?有什么区别?Java严重依赖Java虚拟机(JVM)来实现目标代码级别的平台独立性。JVM是一种附属于特定操作系统的抽象机器,具有虚拟机指令集;它自己的堆栈;鉴别,ETC。然而,JVM通常是用软件而不是硬件来实现的。(目前,SUNSystems已经设计并实现了主要用于网络计算机NC的Java芯片。而且,Java芯片的出现将使Java更容易嵌入到家用电器中。)JVM是特定于平台的基础。Java有一个Java解释器,用于将Java编译器编译出来的程序翻译到JVM上。当Java程序员编写软件时,Java源程序通过Java编译器编译成JVM节码。任何配备Java解释器的机器都可以运行这个程序,无论生成字节码的平台是什么(过程如图1所示)。此外,Java使用基于IEEE标准的数据类型。通过JVM保证了数据类型的一致性,也保证了Java的平台独立性。
简单来说,java解释器只是一个基于虚拟机jvm平台的程序
还有一个问题:如果我用JAVA写了一个程序,我可以使用它吗?你认为我正确理解JAVA解释器来做到这一点吗?你认为开发JAVA程序时会用到调试吗?只有安装了相应的虚拟机后才能运行该程序。