JAVA基礎--語言特性

前言

昨天跟同事聊天話題聊到了java語言的類型,有些人說是解釋型語言,有人說是編譯型語言。給我整的也很懵。所以今天就整理了一下思路。

正文

解釋型語言

先來說說解釋型語言,什麼是解釋型語言呢?
解釋型語言就是先翻譯成中間代碼,再由解釋器對中間代碼進行解釋運行。程序不需要編譯,程序在運行時才翻譯成機器語言,每執 行一次都要翻譯一次。因此效率比較低。
常見的解釋型語言有:Python/JavaScript / Perl /Shell等
用圖表示如下:
在這裏插入圖片描述

編譯型語言

編譯型語言先將源代碼編譯生成機器指令集,再由機器運行機器碼(二進制)。
常見的編譯型語言有:C、C++、Delphi等
用圖表示的話有如下:
在這裏插入圖片描述

兩種類型編程的比較

編譯型語言:

1、由於是先進行了編譯的工作,運行時直接使用編譯好的機器指令集,所有性能更快。
2、不能跨平臺。

解釋型語言:

1、每次運行時都要逐條翻譯,逐條執行所以性能上要比編譯型語言稍微差一點。
2、運行時可以針對不同平臺進行不同解釋,擁有跨平臺性。

JAVA語言特性

上邊介紹瞭解釋型語言和編譯型語言,那JAVA屬於這兩者中的哪一種呢?(這個問題本身就有問題)根據JAVA的運行機制我做了下邊的這個圖,通過圖來了解一下JAVA到底是屬於哪一種。
在這裏插入圖片描述
通過上邊的圖總結出來了三點Java的特性:
1、Java既希望利用編譯型語言性能好的特點、又想跨平臺。
2、Java語言既有編譯(不徹底的編譯、編譯成字節碼文件),又有解釋(每次運行時,將字節碼翻譯成對應平臺的機器指令)。
3、Java的性能很好,也能跨平臺。

JVM是什麼呢?

這個問題就比較深奧了,我會在接下來的博客中陸續的寫一些JVM的原理。
簡單的概括來說,Java源程序編譯之後生成的是字節碼文件(與平臺無關),不同平臺上的JVM是不同的,不同平臺JVM負責將字節碼文件解釋對應平臺的機器指令,這樣過程即可實現Java程序的跨平臺。

結束

道理不爭辯就不明瞭,要想自身水平提高,要學會辯論。這樣更有利於記憶,印象深刻忘不了。沒準還能增進同事之間的友誼呢!當然爭辯的前提是不能急眼,更不能咬人啊!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章