解释器和编译器的区别(解释器是什么意思)

解释器和编译器的区别(解释器是什么意思)

扫码添加渲大师小管家,免费领取渲染插件、素材、模型、教程合集大礼包!

解释器(Interpreter):

在计算机科学中。解释器是一种计算机程序。它直接执行由编程语言或脚本语言编写的代码。并不会把源代码预编译成机器码。解释器会一行一行的读取源代码。解释。然后立即执行。

java虚拟机(jvm)启动时。会根据预定义的规范对字节码采用逐行解释的方式执行。也就是将字节码文件中的每条内容都翻译成系统能识别的指令并执行。

注意这里是直接执行。并没有编译出什么文件(就算有也是部分临时的)。相当于实时翻译并执行。

编译器(Compiler):

编译器负责把一种编程语言(通常为高级语言)“翻译”成另外一种语言(通常为低级语言)。后者往往是二进制的形式的机器语言。被称为目标代码(object code)。这个转换的过程通常的目的是生成可执行的程序。

在java中。将.java编译为.class文件就是编译器的一种操作。而如果我们又将.class编译成计算机CPU可以直接执行的机器语言。那这就也是编译操作了。

注意这里并没有执行。只负责完整、彻底的翻译。然后生成翻译后的文件。并没有任何执行的操作。

解释器和编译器的区别(解释器是什么意思)

为什么Java是半编译半解释语言

关于这个。有两种说法。我觉得都挺有道理

①先编译后解释

编译型语言是将源码编译成机器指令的文件。直接就可以执行。C/C++就是这种。而java也是通过编译将源码java文件编译成字节码文件(.class)。所以它显然具有编译的特点。

解释型语言是在运行时一句一句的读取源码。一边翻译成机器指令一边执行。而java在运行时也是通过jvm读取字节码文件。一边翻译一边解释成机器指令并执行。所以它显然也具有解释的特点。

所以java是半编译半解释型语言。

②一边解释一边编译

jvm支持一种叫即时编译的技术。它被称之为:JIT(Just in time compiler)编译器。也就是jvm不仅仅有解释器的作用。它其实还有编译器的作用。

jvm在执行java程序时。通常会将解释执行和编译执行二者结合起来进行。也就是一边解释一边编译。

所以java是半编译半解释型语言。

这两种说法。我认为都很有道理。而且我们也无需钻牛角尖非要探究Java被这样叫的原因。因为这已经是事实了。

分享到 :
相关推荐

国内服务器和香港服务器有什么区别(国内服务器和香港服务器有什么区别呢)

国内服务器和香港服务器的区别有:1。国内服务器需要进行备案。而香港服务器不需要;2。...

域名绑定服务器生效要多久(域名解析服务器在哪里)

大家好,今天来介绍域名绑定服务器生效要多久(域名解析之后绑定主机是直接就能用的吗)的...

2018年HostGator虚拟主机最新购买教程(hostinger虚拟主机)

HostGator主机大家应该早有耳闻。其主机稳定性好而备受站长喜爱。现在HostG...

视频直播服务器主要看哪些参数(视频直播服务器主要看哪些参数设置)

现如今视频在线观看是愈来愈火。制作小视频和直播间的服务平台也愈来愈多。而无论是网络直...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注