本文目錄一覽:
Java如何實現跨平台
Java的跨平台是通過Java虛擬機JVM來實現的。
java代碼不是直接運行在CPU上,而是運行在java虛機(簡稱JVM)上的。
Java程序編譯之後的代碼不是能被硬體系統直接運行的代碼,而是一種「中間碼」——位元組碼。然後不同的硬體平台上安裝有不同的Java虛擬機(JVM),由JVM來把位元組碼再「翻譯」成所對應的硬體平台能夠執行的代碼。因此對於Java編程者來說,不需要考慮硬體平台是什麼,因為JAVA程序不是直接在電腦上運行的,是在虛擬機上進行的,每個系統平台都是有自己的虛擬機(JVM),所以JAVA語言能跨平台。
Java為什麼能夠跨平台?
Java之所以能跨平台,是因為java虛擬機能跨平台。
.NET之所以能跨語言,就簡單的說吧
任何代碼在最終要變成機器語言,所以
對於機器來說無論你用才C#
還是VB.NET
最後的意思表達都是一樣的,
只不過機器在中做了翻譯的過程;
中間有N
多專有名詞
反正都是通過.net
Framework
所謂的虛擬機。
JAVA
也是這套機制
只不過。NET
有MSIL
好象就是微軟的公共語言什麼的
java跨平台是什麼意思?
java跨平台就是能在不同的環境(主要是操作系統)上運行java程序!
Java 不同於一般的編譯執行計算機語言和解釋執行計算機語言。它首先將源代碼編譯成二進位位元組碼(bytecode),然後依賴各種不同平台上的虛擬機來解釋執行位元組碼,從而實現了「一次編譯、到處執行」的跨平台特性。
java的跨平台工作原理
首先我們要理解什麼是跨平台,所謂的跨平台就是JAVA寫的一份代碼可以在任意的操作系統平台上運行。
為什麼跨平台會成為一個問題呢?因為每一個操作系統平台支持不同的指令集我們所寫的代碼經過編譯之後只能適用於一個平台,換一個平台就不支持了。而JAVA完美的解決了這個問題,JAVA是如何做到這一點的呢?在上圖中我們可以看到JAVA代碼執行的流程。
JAVA源代碼-JAVA位元組碼-JVM解釋執行
我們寫的JAVA源代碼會被編譯為位元組碼,然後被JVM虛擬機解釋執行,我們可以看到JVM虛擬機在跨平台的過程中發揮了重要的作用,就是由它解釋位元組碼並執行的,對應於每一個平台都有一個JVM虛擬機,而位元組碼只有一份,windows的JVM虛擬機可以將位元組碼解釋為能在windows平台上執行的指令並執行,Linux的JVM虛擬機可以將位元組碼解釋為能在Linux平台上執行的指令並執行,他們執行的位元組碼都是同一份。這樣就實現了跨平台。
JAVA語言為什麼能跨平台?
所謂的跨平台就是JAVA寫的一份代碼可以在任意的操作系統平台上運行。
為什麼跨平台會成為一個問題呢?因為每一個操作系統平台支持不同的指令集我們所寫的代碼經過編譯之後只能適用於一個平台,換一個平台就不支持了。而JAVA完美的解決了這個問題。
Java的一大特色就是「write once, run anywhere」即「一次編譯,到處運行」。就是說你不用專門為每個平台寫一份代碼,你寫的Java程序在任何平台都能跑起來。
它的實現原理是在系統層面上又增加了一層虛擬機(Java Virtual Machine,簡稱JVM),且為每個平台都定製了對應的虛擬機。然後Java程序是在虛擬機上跑的,因此平台無關。
Java的運行流程是:程序員寫了源代碼(Source Code,.java後綴,跨平台),然後經過編譯器編譯成位元組碼(Byte Code,.class後綴,二進位文件),位元組碼是所有虛擬機都能理解的中間文件。然後交給虛擬機(每個平台都有對應的虛擬機)去運行。
所以對「write once, run anywhere」更準確的理解是,「一次編譯,到處裝虛擬機,所以到處運行」。
整個流程如下圖所示。
希望對您有所幫助!~
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/187052.html