Java爲什麼可以跨平臺?

首先要明白兩個概念:

-> 什麼是操作系統?
操作系統(Operating System ,OS)是配置在計算機硬件上的第一層軟件,是對硬件系統的首次擴充,其主要作用是管理好這些設備,提高它們的利用率和系統的吞吐量,併爲用戶和應用程序提供一個簡單的接口,便於用戶使用。OS是現代計算機系統中最基本的系統軟件。——《計算機操作系統(第四版)》

-> 什麼又是平臺相關性?
不同的平臺(能夠支持程序運行的硬件或軟件環境爲平臺)都有其特有的指令格式。
就好像,Windows系統只能運行Windows的程序(exe),Linux系統只能運行Linux的程序;一樣的道理,Windows的可執行文件不能直接運行在Linux系統中。Android手機只能運行Android的APP,不能運行iPhone的APP。

使用特定平臺的編譯器所編譯的程序只能在對應的平臺運行,編譯器是與平臺相關的,編譯後的文件也是與平臺相關性的。(這裏的語言跨平臺是指編譯後的文件跨平臺,而不是源程序跨平臺)

-> Java是如何實現跨平臺的?
關鍵的一個點是虛擬機(JVM)
對Java進行編譯後,會生成與平臺系統無關的文件——字節碼文件。

但是Windows、Linux是不能執行字節碼文件的,
只有Java虛擬機(JVM)才能識別字節碼文件。

所以,想在Windows上運行Java程序,就要安裝Windows版的JVM;
想在Mac系統上運行,就要安裝Mac版本的JVM。

只與Java虛擬機有關,所以就實現了跨平臺。

=> 總的來說,編譯Java後生成與平臺無關的字節碼文件,若要運行該文件,只需安裝對應的JVM即可,就達到了“一次編譯,到處運行”。

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