1. 程式人生 > >"Java之所以能跨平臺,本質原因在於jvm不是跨平臺的"如何理解?

"Java之所以能跨平臺,本質原因在於jvm不是跨平臺的"如何理解?

誤區:JVM都不是跨平臺的,JAVA依賴於JVM,那JAVA應該就不跨平臺了啊

解釋:先理解跨平臺含義:不依賴於作業系統,也不依賴硬體環境。

           不同的系統下有不同的JVM(JVM是C語言寫的),所以JVM不是跨平臺的,沒毛病。

           JAVA依賴於JVM,JVM給JAVA提供了執行環境,所以JAVA是跨平臺的。

           再重新理解這句話...  豁然開朗

執行過程:Java編譯器將Java源程式編譯成與平臺無關的位元組碼檔案(class檔案),然後由Java虛擬機器(JVM)對位元組碼檔案解釋執行。該位元組碼與系統平臺無關,是介於原始碼和機器指令之間的一種狀態。在後續執行時,採取解釋機制將Java位元組碼解釋成與系統平臺對應的機器指令。這樣既減少了編譯次數,又增強了程式的可移植性,因此被稱為“一次編譯,多處執行!”。