2.7 编译型和解释型

news/2024/11/25 13:52:15/

2.7 编译型和解释型

前面我们使用java和javac命令把Hello,World!在控制台输出。那为什么输出,这里我们需要掌握两个知识点。编译型语言和解释型语言。在计算机的高级编程语言就分为编译型语言和解释型语言。而我们的Java既有编译型的特点也有解释型的特点。从字面意思来看,编译和解释都有翻译的意思,他们的区别就在于时机不同,比如一个中国人和一个美国人,两个人之间的文字是不一样的,如果他们想要看同一本书,比如三国演义,如果美国人想看我们可以采用两种方法

  1. 把整本三国演义全部翻译成英语,这样美国人就可以看了。
  2. 美国人找了一个翻译官,美国人要看一段,翻译官就给他翻译一段,他就可以一直跟着翻译官的进度走。但是如果翻译官那天没有工作,或者美国人想要回过头去翻看之前的章节,此时翻译官就需要往回走重新翻译一遍。

这两种方法都可以使美国人读我们的三国演义,当然这两种方法各有好处,第一种方法是把整本书从中文变成了英文,这个外国人就可以看完了,但是如果作者把书更新了,或者内容换了一下,此时外国人想要看,就需要再把一本书重新翻译一遍,此时外国人就需要花同样的价钱再去购买,如此一来代价是较大的,而第二种方法有一个翻译官实时翻译,此时书本如果改了,翻译官就可以立即翻译过来,就可以节省一些成本,所以说这两种方式各有好处。

我们继续回到编译型和解释型这边

编译型就类似于把一本中文书直接翻译成英文版进行出售,在程序里给我们的感觉就是他有一个负责翻译的程序,将我们自己写的源代码转换成一个计算机可以执行的代码,这个过程说的专业一点就叫做编译型即complie,这本书从中文到英文需要翻译或者编译,无论是人还是翻译官又或者程序,总归需要他们去翻译或者编译这段代码,在程序中负责编译的程序,我们称之为编译器

解释型,意思就是我说一句你解释一句,我写一段代码你解释一句,这样以来,程序的性能可能有一点损失,因为用一点编译一下,如果我要回头看一个东西你又要给我从新翻译

编译型和解释型这两种语言各有利弊,编译型直接将整本书进行了翻译,外国人就可以直接看了,如此以来执行速度就会更快,因为他把所有东西都已经翻译好了,电脑只用去执行即可,对计算机的操作系统要求比较低,比如我们开发的操作系统Windows、Linux、macOS都是用的编译型语言进行编写的,比如C语言、C++都是编译型的语言,如果我们想要运行他们编写的程序都需要对代码进行编译。而解释型就像我们平时看到的网页以及服务器的一些脚本,对速度要求不高,对速度要求不高我们就可以用这种解释型的语言,也就是边执行边解释,比如我们现在正在学习的Java,当然Java是两者的结合,除了Java还有一个脚本语言JavaScript,VBscript,Python等这些都是解释型语言,Java语言虽然比较接近解释型语言的特征,但是我们运行我们的.java文件生成了一个.class文件,这中间就是经历了一个编译的过程,它把javac的源文件通过Java的编译器变成了一个字节码文件,而真正被执行的文件是class字节码文件。所以说我们可以理解成java文件在执行之前经过了一次预编译,生成的代码就介于机器码和java源代码之间的字节码文件。如图程序控制
当字节码文件运行时就会走到JVM虚拟机,他会将.class字节码文件放到我们虚拟机的类装载器里面,如此以来,这个类就被加载到我们的JVM里了,加载进之后会到字节码校验器,它主要负责查看你的代码写的对不对,如果代码写错了就会告诉你你的代码出问题了,如果字节码校验器校验没有问题就通过解释器把代码解释给操作系统,走一步运行一步,走一步解释一步,如此以来程序就运行起来了。

随着技术以及硬件的发展,编译型和解释型的概念变得越来越模糊了,就像现在的电脑起步就是16G的内存,所以现在解释型的效率也是非常高了,因为我们的硬件已经提升,但这里我们需要知道的是,Java是先编译到操作系统在进行解释,因此这里我们要知道Java具有编译型和解释型的特征。

刚才我们已经说了程序的运行机制,我们的Java程序的源文件是通过一条javac命令把我们的Java文件编译成我们的class文件,在通过解释器告诉操作系统我们这段代码写了是干什么的,操作系统就按照我们的指令进行操作,这就是程序将一系列的指令按照有规律的操作进行执行,这里只是笼统的解释,这里我们要理解其中的原理,最起码我们要知道程序运行的流程。


http://www.ppmy.cn/news/139488.html

相关文章

Intel-4004微处理器(MCS-4微机)

从最开始进行分析,一步一步扩展与改进,直到今天的高速信息处理时代 最难的是,该处理器时间太早,很多资料和功能信息都很难查找 4004芯片: 4004历史 Intel-4004已经很难买到了,可以说是“老古董”。 Intel…

CSS 选择器的常见用法

前言 CSS在编写代码的时候有很多种样式,和和HTML,JS相似,他们都是运行在浏览器中的,下面就介绍一下CSS选择器的常见用法。 标签选择器使用标签名把页面中所有同名标签都选中类选择器使用.类名的方式对应一组CSS属性id选择器使用 …

Spring父子容器

一、痛点 当前开发工程以来的spring-boot-starter脚手架,配置了很多通用的bean,而部分无法满足自身需求,因此需要自定义bean,这时候就有可能出现自己定义bean和脚手架或者引入的第三方依赖中的某个bean冲突,导致出现b…

小米联合金山云发布“1KM边缘计算” 携手布局“云+边缘”新赛道

金山云CEO王育林: “今天是一个特别特别特别的发布会,因为小米每次发布会都有硬件,而这次是和我们金山云联合发布“1KM边缘计算”解决方案,打造“云亿级终端”边缘计算模式。当然我们和小米的合作属于厚积薄发,是之前一…

盘点 | 2018年IoT蓄势待发

来源 | 地歌网 文 | 曹亦卿 编辑 | 夏广川 5G前夜,IoT厚积薄发,未来是否已来? 2018年,互联网圈儿大事不断。小米与美团点评高调上市,拼多多与趣头条弯道超车,马云“禅让”推合伙人制,腾讯变革…

MySQL数据库 第0章:每章SQL命令总结

MySQL数据库 第0章:每章SQL命令总结 MySQL数据库 第1章:数据库入门MySQL数据库 第2章:数据库基本操作MySQL数据库 第3章:数据类型与约束MySQL数据库 第4章:数据库设计MySQL数据库 第5章:单表操作MySQL数据库…

近场通信技术

目录标题 学习内容一、三种近场通信技术的特点1、NFCNFC技术的主要特点如下: 2、BlueToothBlueTooth技术的主要特点如下: 3、WIFIWIFI技术的主要特点如下: 4.三种技术比较 二、浅谈未来近场通信技术的应用场景1、NFC2、BlueTooth3、WIFI 学习…

Android近场通信

一.三种近场通信技术 1.类别 (1)WIFI (2)BlueTooth (3)NFC 2.三大技术的特点 (1)WIFI ​ WiFi(Wireless Fidelity,无线保真技术)即IEEE 802.11协…