在计算机的高级编程语言类型分为两种,分别是编译型和解释型,而Java既有编译型又有解释型
什么是编译型?什么是解释型?
字面上来说编译和解释都有‘翻译’的意思,而她们两个的区别是‘翻译’的时机不同,什么时候去翻译。举一个例子,A是中国人,B是美国人。A写了一本小说,B想看但因为语言不同,可以选择两种解决方式。第一种:把整本书全部翻译成一本英文书;第二种,找一个翻译官,看一段翻译一段,他翻回去看之前的,翻译官也要回去重新翻译。这两种方式都可以让美国人把书看完,但是如果小说更新了,第一种就需要把正本小说重新翻译一遍,代价比较大,而第二种可以实时翻译,那边改了这边可以直接翻译节省一些成本,两种方式各有好处。
编译型,就相当于把一本中文书直接翻译成英文书,在程序里就是有一个专门负责翻译的程序,也就是编译器,将我们自己写的源代码翻译成计算机可以执行的程序;解释型,就是看一段翻译一段,我执行一句就读一句,用一下编译一下,性能会有损失,回头看一下东西需要再次翻译,比较麻烦。
编译型,执行速度快,把所有的东西都翻译好了,直接去执行就行,对操作系统的要求比较低。所以比如操作系统Windows、Linux,C/C++都是编译型语言,运行时把整个程序编译型一下就可以直接用了
解释型的话,比如一些网页、服务器的一些脚本、JavaScript、Python对速度要求不高,就都是解释型语言
Java程序运行机制
上图预编译--javac,随着计算机硬件和技术的发展编译型和解释型的界限慢慢模糊了,解释型的效率也是非常高的了。