首先咱們要理解什麼是跨平臺,所謂的跨平臺就是JAVA寫的一份代碼能夠在任意的操做系統平臺上運行。
爲何跨平臺會成爲一個問題呢?由於每個操做系統平臺支持不一樣的指令集咱們所寫的代碼通過編譯以後只能適用於一個平臺,換一個平臺就不支持了。而JAVA完美的解決了這個問題,JAVA是如何作到這一點的呢?在上圖中咱們能夠看到JAVA代碼執行的流程。
JAVA源代碼->JAVA字節碼->JVM解釋執行
咱們寫的JAVA源代碼會被編譯爲字節碼,而後被JVM虛擬機解釋執行,咱們能夠看到JVM虛擬機在跨平臺的過程當中發揮了重要的做用,就是由它解釋字節碼並執行的,對應於每個平臺都有一個JVM虛擬機,而字節碼只有一份,windows的JVM虛擬機能夠將字節碼解釋爲能在windows平臺上執行的指令並執行,Linux的JVM虛擬機能夠將字節碼解釋爲能在Linux平臺上執行的指令並執行,他們執行的字節碼都是同一份。這樣就實現了跨平臺。java