Java語言跨平臺的原理和Java程式的執行流程
阿新 • • 發佈:2018-12-12
Java語言跨平臺的特殊性:
一般高階語言如要在不同的平臺上執行,需要編譯成不同的目的碼。引入Java虛擬機器後,Java語言在不同平臺上執行時不需要重新編譯。所以Java語言是跨平臺的,此特性也是基於Java虛擬機器的。
Java語言跨平臺性的實現原理:
Java虛擬機器(JVM)遮蔽了與具體平臺相關的資訊,使得Java語言編譯程式只需生成在Java虛擬機器上執行的目的碼(位元組碼),就可以在多種平臺上不加修改的執行。
簡單來說就是每個平臺都有一個對應的JVM,而Java語言編寫的程式所編譯成的位元組碼又是由JVM來執行的,不同平臺上的JVM會把位元組碼解釋為對應平臺所能執行的機器碼然後執行,由此實現了Java語言的跨平臺性。
總結:由於JVM的不跨平臺性最終實現了Java語言的跨平臺性
Java程式的執行流程:
Java程式的執行分為兩大期:
1) 編譯期
Java編譯器將原始檔(.java)編譯成位元組碼(.class)檔案
2) 執行期
Java執行期的操作都是在JVM上的,首先通過類載入器將位元組碼檔案載入到JVM中,然後通過位元組碼校驗器對載入進入位元組碼校驗,如果位元組碼檔案是合法的、可執行的則通過直譯器將位元組碼解釋為當前平臺所能最終執行的機器碼,也被稱為目的碼,最後執行。