java编译型解释
Java,Python谁是编译型语言,谁是解释型语
编译型语言要先编译再运行,而解释性语言直接“运行”源代码。
回到最开始的问题,如果以是“否保存机器码为exe文件”为区分,那么Java和Python都属于解释型语言。
但具体来讲,Java和Python是有很大不同的。Java代码从源程序到执行,要经过的过程是:编译器(javac)把源代码转化为字节码,然后解释器(Java.exe)把字节码转换为计算机理解的机器码来执行,其过程中没有把“机器码保存为exe”的行为(这样讲也不完全准确,下面会讲到)。其中编译器和解释器都是Java虚拟机(JVM)的一部分,由于针对不同的硬件与OS,Java解释器有所不同,因此可以实现“一次编译、到处执行”。所以JVM是Java跨平台特性的关键所在。
Java虚拟机(JVM)一种用于计算机设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域
对于Python,其源代码到执行也要经过如下过程:源代码--->字节码--->机器码。跟Java相同的是,其过程中也没有把“机器码保存为exe”的行为。与Java不同的是,Python使用的虚拟机是基于其他语言实现的,比如我们一般使用的Python实际为Cpython,也就是其虚拟机由C实现,这个虚拟机负责把Python源码编译为字节码,再解释执行。另外,还有Jypython、Ironpython等。
⑵ 编译型和解释型的区别&Java从编译到执行的过
1、区别:
编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。
解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。
2、Java从编译到执行的过程:
⑶ Java 是编译型语言还是解释型语言
高级计算机语言主要有两种类型:编译和解释。
这是一个跨平台的java,并可在任何地方运行:跨平台的java是基于JVM。Java虚拟机是由软件或硬件模拟的计算机程序,java,计算机所有的.class文件是运行在JVM,即JVM *。只有Java类文件,以适应不同的操作系统,让操作系统的安装按照不同只要JVM的类型,然后程序无论哪个操作系统的JVM可以纠正窗口/其他...... JVM的Unix / JVM的实现因此,如果没有JVM,就不能跨平台。
⑷ java是编译型语言还是解释型语言
概念:
编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。
解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!
区别:
编译型语言,执行速度快、效率高;依赖编译器、跨平台性差些。如C、C++、Delphi、 Pascal,Fortran。
解释型语言,执行速度慢、效率低;依赖解释器、跨平台性好。如Java、Basic.
通俗的讲,编译语言是在编译后可以直接运行,而解释语言的执行需要一个解释环境。
java很特殊,java程序也需要编译,但是没有直接编译称为机器语言,而是编译称为字节码,然后用解释方式执行字节码。
JIT:
首先采用编译形式生成某种中介代码(Java bytecode/MSIL),然后在运行时将其(通常以函数或Block为单位)最终转换成机器码,然后执行,转化的机器码可以被cache,以提高重复执行的效率
JAVA的第一道工序是javac编译,当然目标文件是BYTECODE。后续可能有三种处理方式:
1. 运行时,BYTECODE由JVM逐条解释执行,
2. 运行时,部分代码可能由JIT翻译为目标机器指令(以method为翻译单位,还会保存起来,第二次执行就不用翻译了)直接执行;
3. RTSJ。继JAVAC之后执行AOT二次编译,生成静态的目标平台代码(典型的就是IBM WEBSHPERE REAL TIME)。
⑸ 编译型和解释型的区别&Java从编译到执行的过程
编译执行:
编译执行是一种计算机语言的执行方式。由编译程序将目标代码一次性编译成目标程序,再由机器运行目标程序(效率高于解释执行)
解释执行:
使用解释执行的程序我们一般称为解释程序。它将源语言直接作为源程序输入,解释执行解释一句后就提交计算机执行一句,并不形成目标程序。解释执行不依赖于平台。
Java从编译到执行的过程:
⑹ Java是解释型语言还是编译型语言
Java是编译型语言,代码编程之后,需要编译成机器可以运行得文件,才能运行。
解释型语言是代码写好之后不用编译,直接可以运行得。例如html,这种。所见即所运行得。
⑺ 编译型和解释型的区别&Java从编译到执行的过程
Java这个语言很非凡。
二、你可以说它是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。
三、但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。
像C、C++ 他们经过一次编译之后直接可以编译成操作系统了解的类型,可以直接执行的 所以他们是编译型的语言。没有经过第二次的处理 而Java不一样他首先由编译器编译成.class类型的文件,这个是java自己类型的文件 然后在通过虚拟机(JVM)从.class文件中读一行解释执行一行,所以他是解释型的语言,而由于java对于多种不同的操作系统有不同的JVM所以
Java实现了真正意义上的跨平台!
请观看下面两张图 了解一下Java的虚拟机机制:
(1)java语言的编译--解释---执行过程
(2)java的虚拟机
定义:编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。
解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!区别:编译型语言,执行速度快、效率高;依靠编译器、跨平台性差些。
解释型语言,执行速度慢、效率低;依靠解释器、跨平台性好。
个人认为,java是解释型的语言,因为虽然java也需要编译,编译成.class文件,但是并不是机器可以识别的语言,而是字节码,最终还是需要 jvm的解释,才能在各个平台执行,这同时也是java跨平台的原因。所以可是说java即是编译型的,也是解释型,但是假如非要归类的话,从概念上的定义,恐怕java应该归到解释型的语言中。