作者:蘇月虹
鏈接:https://www.zhihu.com/question/30753144/answer/53095878
來源:知乎
鏈接:https://www.zhihu.com/question/30753144/answer/53095878
來源:知乎
Java跨平台是怎樣實現的呢?這就要談及Java虛擬機(Java Virtual Machine,簡稱 JVM)。
我們編寫的Java源碼,編譯后會生成一種 .class 文件,稱為字節碼文件。
字節碼不能直接運行,必須通過JVM翻譯成機器碼才能運行。
Java虛擬機就是負責將字節碼文件翻譯成特定平台下的機器碼然后運行。
JVM也是一個軟件,不同的平台有不同的版本。只要在不同平台上安裝對應的JVM,就可以運行字節碼文件。
同一個Java程序,通過JVM這一”中間層“,就能在不同平台上運行,實現了”一次編譯,到處運行“。
JVM是一個”橋梁“,是一個”中間件“,是實現跨平台的關鍵,Java代碼首先被編譯成字節碼文件,再由JVM將字節碼文件翻譯成機器語言,從而達到運行Java程序的目的。
注意:編譯的結果不是生成機器碼,而是生成字節碼,不同平台下編譯生成的字節碼是一樣的,但是由JVM翻譯成的機器碼卻不一樣。
