Java是可以跨平臺的編程語言,那我們首先得知道什么是平臺,我們把CPU處理器與操作系統(tǒng)的整體叫平臺。
使用特定編譯器編譯的程序只能在對應(yīng)的平臺運行,這里也可以說編譯器是與平臺相關(guān)的,編譯后的文件也是與平臺相關(guān)的。我們說的語言跨平臺是編譯后的文件跨平臺,而不是源程序跨平臺。
java實現(xiàn)跨平臺的方法:
什么是平臺無關(guān)性
平臺無關(guān)性就是一種語言在計算機上的運行不受平臺的約束,一次編譯,到處執(zhí)行。
也就是說,用Java創(chuàng)建的可以執(zhí)行二進制程序,能夠不加改變的運行于多個平臺,Java減少了開發(fā)和部署的多個平臺的成本和時間。
平臺無關(guān)性的實現(xiàn)
其中扮演者重要的角色有Java語言規(guī)范、Class文件、Java虛擬機(JVN)等。
在計算機世界中,計算機只認識0和1.所以,真正被執(zhí)行的其實是由0和1組成的二進制文件。
日常開發(fā)使用的C、C++、Java、python 都屬于是高級語言,而非二進制語言,所以,想讓計算機認識我們寫出來的Java代碼,那就需要把他翻譯成由0和1組成的二進制文件。這個過程就叫編譯。負責這一個過程的處理的工具叫做編譯器。
想把Java文件,編譯成二進制文件文件,需要經(jīng)過兩步編譯,前端編譯和后端編譯。
對于Java的平臺無關(guān)性的支持是分布在整個Java體系結(jié)構(gòu)中的。
其中扮演著重要角色的有Java語言規(guī)范、Class文件、Java虛擬機等。
Java語言規(guī)范
通過規(guī)定Java語言中基本數(shù)據(jù)類型的取值范圍和行為。
Class文件
所有Java文件要編譯成統(tǒng)一的Class文件。
Java虛擬機
通過Java虛擬機將Class文件轉(zhuǎn)成對應(yīng)平臺的二進制文件等 Java的平臺無關(guān)性是建立在Java虛擬機的平臺有關(guān)性基礎(chǔ)之上的,是因為Java虛擬機屏蔽了底層操作系統(tǒng)和硬件的差異。