北京网站建设 降龙网,潍坊网站建设 绮畅,网站推广营销服务,win2012 iis添加网站2.7 编译型和解释型
前面我们使用java和javac命令把Hello#xff0c;World#xff01;在控制台输出。那为什么输出#xff0c;这里我们需要掌握两个知识点。编译型语言和解释型语言。在计算机的高级编程语言就分为编译型语言和解释型语言。而我们的Java既有编译型的特点也有…2.7 编译型和解释型
前面我们使用java和javac命令把HelloWorld在控制台输出。那为什么输出这里我们需要掌握两个知识点。编译型语言和解释型语言。在计算机的高级编程语言就分为编译型语言和解释型语言。而我们的Java既有编译型的特点也有解释型的特点。从字面意思来看编译和解释都有翻译的意思他们的区别就在于时机不同比如一个中国人和一个美国人两个人之间的文字是不一样的如果他们想要看同一本书比如三国演义如果美国人想看我们可以采用两种方法
把整本三国演义全部翻译成英语这样美国人就可以看了。美国人找了一个翻译官美国人要看一段翻译官就给他翻译一段他就可以一直跟着翻译官的进度走。但是如果翻译官那天没有工作或者美国人想要回过头去翻看之前的章节此时翻译官就需要往回走重新翻译一遍。
这两种方法都可以使美国人读我们的三国演义当然这两种方法各有好处第一种方法是把整本书从中文变成了英文这个外国人就可以看完了但是如果作者把书更新了或者内容换了一下此时外国人想要看就需要再把一本书重新翻译一遍此时外国人就需要花同样的价钱再去购买如此一来代价是较大的而第二种方法有一个翻译官实时翻译此时书本如果改了翻译官就可以立即翻译过来就可以节省一些成本所以说这两种方式各有好处。
我们继续回到编译型和解释型这边
编译型就类似于把一本中文书直接翻译成英文版进行出售在程序里给我们的感觉就是他有一个负责翻译的程序将我们自己写的源代码转换成一个计算机可以执行的代码这个过程说的专业一点就叫做编译型即complie这本书从中文到英文需要翻译或者编译无论是人还是翻译官又或者程序总归需要他们去翻译或者编译这段代码在程序中负责编译的程序我们称之为编译器
解释型意思就是我说一句你解释一句我写一段代码你解释一句这样以来程序的性能可能有一点损失因为用一点编译一下如果我要回头看一个东西你又要给我从新翻译
编译型和解释型这两种语言各有利弊编译型直接将整本书进行了翻译外国人就可以直接看了如此以来执行速度就会更快因为他把所有东西都已经翻译好了电脑只用去执行即可对计算机的操作系统要求比较低比如我们开发的操作系统Windows、Linux、macOS都是用的编译型语言进行编写的比如C语言、C都是编译型的语言如果我们想要运行他们编写的程序都需要对代码进行编译。而解释型就像我们平时看到的网页以及服务器的一些脚本对速度要求不高对速度要求不高我们就可以用这种解释型的语言也就是边执行边解释比如我们现在正在学习的Java当然Java是两者的结合除了Java还有一个脚本语言JavaScriptVBscriptPython等这些都是解释型语言Java语言虽然比较接近解释型语言的特征但是我们运行我们的.java文件生成了一个.class文件这中间就是经历了一个编译的过程它把javac的源文件通过Java的编译器变成了一个字节码文件而真正被执行的文件是class字节码文件。所以说我们可以理解成java文件在执行之前经过了一次预编译生成的代码就介于机器码和java源代码之间的字节码文件。如图 当字节码文件运行时就会走到JVM虚拟机他会将.class字节码文件放到我们虚拟机的类装载器里面如此以来这个类就被加载到我们的JVM里了加载进之后会到字节码校验器它主要负责查看你的代码写的对不对如果代码写错了就会告诉你你的代码出问题了如果字节码校验器校验没有问题就通过解释器把代码解释给操作系统走一步运行一步走一步解释一步如此以来程序就运行起来了。
随着技术以及硬件的发展编译型和解释型的概念变得越来越模糊了就像现在的电脑起步就是16G的内存所以现在解释型的效率也是非常高了因为我们的硬件已经提升但这里我们需要知道的是Java是先编译到操作系统在进行解释因此这里我们要知道Java具有编译型和解释型的特征。
刚才我们已经说了程序的运行机制我们的Java程序的源文件是通过一条javac命令把我们的Java文件编译成我们的class文件在通过解释器告诉操作系统我们这段代码写了是干什么的操作系统就按照我们的指令进行操作这就是程序将一系列的指令按照有规律的操作进行执行这里只是笼统的解释这里我们要理解其中的原理最起码我们要知道程序运行的流程。