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)。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-26
java的编译器先将其编译为class文件,也就是字节码;然后将字节码交由jvm(java虚拟机)解释执行,
所以很多地方都说“java是一种半编译、半解释执行”的语言
第2个回答  2017-06-10
半编译型语言追答

半解释型语言

相似回答