java的跨平台原理


首先我們要理解什么是跨平台,所謂的跨平台就是JAVA寫的一份代碼可以在任意的操作系統平台上運行。

 

 

為什么跨平台會成為一個問題呢?因為每一個操作系統平台支持不同的指令集我們所寫的代碼經過編譯之后只能適用於一個平台,換一個平台就不支持了。而JAVA完美的解決了這個問題,JAVA是如何做到這一點的呢?在上圖中我們可以看到JAVA代碼執行的流程。

JAVA源代碼->JAVA字節碼->JVM解釋執行

我們寫的JAVA源代碼會被編譯為字節碼,然后被JVM虛擬機解釋執行,我們可以看到JVM虛擬機在跨平台的過程中發揮了重要的作用,就是由它解釋字節碼並執行的,對應於每一個平台都有一個JVM虛擬機,而字節碼只有一份,windows的JVM虛擬機可以將字節碼解釋為能在windows平台上執行的指令並執行,Linux的JVM虛擬機可以將字節碼解釋為能在Linux平台上執行的指令並執行,他們執行的字節碼都是同一份。這樣就實現了跨平台。

注意:編譯的結果不是生成機器碼,而是生成字節碼,字節碼不能直接運行,必須通過JVM翻譯成機器碼才能運行。不同平台下編譯生成的字節碼是一樣的,但是由JVM翻譯成的機器碼卻不一樣。

注意:跨平台的是Java程序,不是JVM。JVM是用C/C++開發的,是編譯后的機器碼,不能跨平台,不同平台下需要安裝不同版本的JVM。


免責聲明!

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



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