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

他们各自的分工是什么?他们有互相包含的关系么

Java虚拟机(JVM)一种用于计算机设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。

Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。

Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。

参考:http://baike.baidu.com/view/374952.htm

Javac编译器

Javac编译器读取Java源代码,并将其编译成字节代码,调用Javac的命令行示例如下:

C:>javac options filename.java

值得注重的是,和Java解释器不同,Javac 编译器期望它正在编译的文件具有扩展名.java。其命令行如下表 选项 功能

-classpath path 此选项用于设定路径,在该路径上Javac寻找需被调用的类。该路径是一个用分号分开的目录列表。

-d Directory 此选项指定一个根目录。该目录用来创建反映软件包继续关系的目录数。

-g 此选项在代码产生器中打开调试表,以后可凭此调试产生字节代码。

-nowarn 此选项禁止编译器产生警告。

-o 此选项告诉javac优化由内联的static、final以及privite成员函数所产生的码。

-verbose 此选项告知Java显示出有关被编译的源文件和任何被调用类库的信息。

参考:http://baike.baidu.com/view/2972115.htm


温馨提示:内容为网友见解,仅供参考
第1个回答  2014-02-13
如果真想深入点了解的话,给你引荐本书:深入JAVA虚拟机第二版.pdf 里面关于原理方法的讲解还不错。本回答被网友采纳

java的虚拟机 编译器 解释器 都什么关系啊?
Java虚拟机(JVM)一种用于计算机设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将...

关于JAVA??
这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。 JAVA介绍一、前言 『Java』从1995年的暑假开始在计算机业界就受到了高度注意,特别是在Internet和多 媒体(Multimedia)相关产品类方面。Java为何...

java虚拟机就是java解释器吗?如果不是的话他们之间有什么区别和...
编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode),它不面向任何特定的处理器,只面向虚拟机。每一种平台的解释器是不同的,但是实现的虚拟机是相同的。Java源程序经过编译器编译后变成...

虚拟机 解释器 是不是说的一个东西?有什么区别?
Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。但JVM通常是在软件上而不是在硬件上实现。(目前,SUN系统公司已经设计实现了Java芯片,主要使用在网络计算机NC上。另外,Java芯片的出现也会使J...

什么是java虚拟机,简述其工作机制
Java虚拟机处于机器和编译程序之间,在任何平台上都提供给编译程序一个共同的接口。Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。 Java虚拟机的主要任务是装载class文件并且执行其中...

Java的Javac编译器和JIT编译器是什么关系,JIT阶段是运行期还是编译期...
Java的卓越之处在于其虚拟机机制,然而在性能上相比C\/C++稍显逊色。但HotSpot虚拟机团队通过引入JIT(即时编译器)技术,实现了性能上的显著提升。JIT的关键在于其在运行时对热点代码的编译,让代码能够转化为本地机器码,从而大幅提高执行效率。Java编译执行分为两阶段:解释执行和编译执行。解释器用于程序...

java解释器是什么?
应该说“java解释器就是把在java虚拟机上运行的目标代码(字节码)解释成为具体平台的机器码的程序。”即jdk或jre目录下bin目录中的java.exe文件,而javac.exe是编译器。运行编译好的文件,输入命令javachello(不需要文件后缀)。拓展:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃...

编译器和解释器之间有什么区别
Java的编译方式有两种,一种是和C++等语言一样的,把源代码编译成和本地机器平台相关的机器语言,叫即时编译。另一种是编译成一种中间的字节码,与机器平台无关的,这种也是常用的,叫解释型的。即时编译器因为产生的是本地机器的机器码,能直接执行;不像字节码还要在JVM(Java虚拟机)上解释运行,...

java的javac编译器和jit编译器是什么关系,jit阶段是运行期
实际上,Java程序既有解释执行,也有编译执行。准确的执行流程可以描述为:源码程序.java文件通过javac命令编译成字节码,然后在虚拟机中解释执行。JIT编译器的作用是在运行时将热点代码编译成本地平台相关的机器码,并进行优化,以提升程序执行效率。JIT编译器的引入显著解决了虚拟机边运行边解释的低性能...

Java,Python谁是编译型语言,谁是解释型语
其中编译器和解释器都是Java虚拟机(JVM)的一部分,由于针对不同的硬件与OS,Java解释器有所不同,因此可以实现“一次编译、到处执行”。所以JVM是Java跨平台特性的关键所在。Java虚拟机(JVM)一种用于计算机设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集...

相似回答