概念:
编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。
解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!
区别:
编译型语言,执行速度快、效率高;依赖编译器、跨平台性差些。如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的编译器先将其编译为class文件,也就是字节码;然后将字节码交由jvm(java虚拟机)解释执行;
所以很多地方都说“java是一种半编译、半解释执行”的语言;
近来(其实也不是很"近")Oracle的(以前是Sun的)HotSpot VM采用了jit compile(just in time compilation)技术,将运行频率很高的字节码直接编译为机器指令执行以提高性能, 所以当字节码被jit编译为机器码的时候,要说它是编译执行的也可以...
不过总体来讲,java的编译结果是被jvm“解释执行”的,所以这么说也能说通,而其实这个“是编译还是解释”这个概念在这里已经有点模糊了,理解它的过程就行了,不必下一个“精确”的定义;
而我自己仍然赞成“java是编译型语言”的说法,因为“编译”其本质就是“把一个相对高级的语言转换为另一个相对低级的语言”,而由java -> class文件的编译已经满足了这个特征; 而后面你要说jvm是“解释执行”的,那其实硬件对于机器码又何尝不是“解释执行”呢?
③ Java是解释型还是编译型
有人说Java是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就无法执行。
也有人说Java是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释型的。对于C和C++,它们经过一次编译之后,可以由操作系统直接执行,所以它们是编译型语言。而Java不一样,它首先由编译器编译成.class(字节码)文件,然后在通过JVM从.class文件中读一行解释执行一行,所以它是解释型的语言。也正是由于java对于多种不同的操作系统有不同的JVM,所以实现了真正意义上的跨平台。(1)Java语言的编译-->解释-->运行过程
(2)JVM到这里,大家应该也都明白了。最后给出编译型语言和解释型语言的定义。
定义:编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。
解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!特点:编译型语言,执行速度快、效率高;依靠编译器、跨平台性差。
解释型语言,执行速度慢、效率低;依靠解释器、跨平台性好。
④ JAVA语言是解释型还是编译型语言
JAVA语言是编译型语言
编译执行是一种计算机语言的执行方式。由编译程序将目标代码一次性编译成目标程序,再由机器运行目标程序。效率高于解释执行。
⑤ Java 是编译型语言还是解释型语言
高级计算机语言主要有两种类型:编译和解释。
这是一个跨平台的java,并可在任何地方运行:跨平台的java是基于JVM。Java虚拟机是由软件或硬件模拟的计算机程序,java,计算机所有的.class文件是运行在JVM,即JVM *。只有Java类文件,以适应不同的操作系统,让操作系统的安装按照不同只要JVM的类型,然后程序无论哪个操作系统的JVM可以纠正窗口/其他...... JVM的Unix / JVM的实现因此,如果没有JVM,就不能跨平台。
⑥ 为什么说Java是一种解释性语言
java是编译型的语言,不是解释型的。
与编译型程序不同,每次运行解释型程序时都要由解释器程序实时地将源代码转换成二进制形式,而编译型程序由编译器一次性将源代码转换成可执行代码,随后从其二进制形式运行。解释型语言(以及用它们编写的程序)往往要比编译型语言及伪代码语言/程序慢,并且通常只有有限的底层操作系统功能访问权限或直接访问硬件的权限。但从另一角度来说,它们无需编译器(可能非常昂贵),并且经常包含在操作系统中,通常比编译型语言更容易编程。
⑦ java是编译型还是解释型语言
概念:
编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。
解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!
区别:
编译型语言,执行速度快、效率高;依赖编译器、跨平台性差些。如C、C++、Delphi、Pascal,Fortran。
解释型语言,执行速度慢、效率低;依赖解释器、跨平台性好。如Java、Basic.
JAVA是解释型语音