java解释器编译器
❶ 编译器和翻译器有什么区别,新人求教。
你好!编译器(在windows下,javac.exe)将源代码(java文件)编译为字节码(bytecode),存放在class文件中。
字节码不能直接在机器上执行,而是通过虚拟机(windows下是java.exe)执行。具体的执行方式有两种:
1. 一般情况下解释执行。解释执行并不是“解释为用c++语言写成的程序”,而是jvm把字节码看成脚本,根据字节码中的指令,由JVM去调用实际的本地方法。
2. 在打开了JIT参数的前提下,jvm会把执行过程中发现的热点位置,由jvm内部的即时编译器编译为本地机器码直接执行。
编译器将java文件编译为class文件,解释器将class文件变为机器语言
❷ 编译器和解释器的主要区别是什么他们相对于对方各自的优点
解释器
是
解释执行
的源代码,
编译器
是将源代码编译成
目标代码
他们最大的区别是程序运行时需要解释器边解释边执行,而编译器则在运行时是完全不需要的
解释器的优点是比较容易让用户实现自己跨平台的代码,比如java,php等,同一套代码可以在
几乎所有的
操作系统上执行,而无需根据操作系统做修改;
编译器的目的就是生成目标代码再由连接器生成可执行的
机器码
,这样的话需要根据不同的操作系统编制代码,虽然有像Qt这样的源代码级跨平台的编程工具库,但在不同的平台上仍然需要重新编译连接成可执行文件,但其执行效率要远远高于解释运行的程序。
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;
而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.
这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)
❸ java的虚拟机 编译器 解释器 都什么关系啊
Java虚拟机(JVM)一种用于计算机设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。
Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。
Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
参考:http://ke..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://ke..com/view/2972115.htm
❹ 即时编译器和JAVA解释器的区别
即时编译器预先把程序编译完成,当执行时就直接调用。
而JAVA解释器则是当需要调用该代码时才临时编译解释,而且没执行一次就要编译一次,而即时编译器则是一次编译多次执行。
