Java是如何實現跨平台運行的


       首先說一下什么是平台?所謂的平台,就是CPU和操作系統的結合體。市面上CPU的種類很多,不同公司生產的CPU支持相同或不同的指令集。指令集就是CPU用來計算和控制計算機系統的一套指令的集合。指令集又分為精簡指令集(RISC)與復雜指令集(CISC)。

       操作系統是充當用戶和計算機之間交互的界面軟件,不同的操作系統支持不同的CPU,嚴格意義上說是不同的操作系統支持不同CPU的指令集。例如  windows和liunx都支持Intel和AMD的復雜指令集(CISC),但並不支持精簡指令集(RISC)。
       總之,開發程序,首先要確定該程序在什么CPU上運行,也就是要知道CPU所使用的指令集,其次要確定操作系統。
       那么,它到底是怎么實現的呢?首先,通過與平台無關的編譯器將Java源程序編譯生成的中間碼,該中間碼與平台無關。然后通過Java虛擬機(Java Virtual Machine,簡稱 JVM)將中間碼(字節碼)文件翻譯成特定平台下的機器碼然后運行。

       JVM也是一個軟件,在不同的平台有不同的版本。也就是說,只要在不同平台上安裝對應的JVM,就可以運行字節碼文件,即運行我們編寫的Java程序,從而實現了”一次編譯,到處運行“的目的。
       所以,運行Java程序必須有JVM的支持,因為編譯的結果不是機器碼,必須要經過JVM的再次翻譯才能執行。即使你將Java程序打包成可執行文件(例如 .exe),仍然需要JVM的支持。
注意:編譯的結果不是生成機器碼,而是生成字節碼,不同平台下編譯生成的字節碼是一樣的,但是由JVM翻譯成的機器碼卻不一樣。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM