java跨平臺,跨的是誰?(百度知道)

1、java跨平臺是同一java源碼被編譯后得到的字節(jié)碼文件可以在不同的操作系統(tǒng)上運行

例如:一個java程序,編譯得到class后可以在windows,linux,mac等等的操作系統(tǒng)上運行

Java先編譯后解釋。

同一個.class文件在不同的虛擬機會得到不同的機器指令

(Windows和Linux的機器指令不同)但是最終執(zhí)行的結果卻是相同的

注意:Windows和Linux的機器指令不同。大概因為操作系統(tǒng)需要硬件支持,所以屬于自己的指令(區(qū)別于cpu的指令)。

2、以前它有一個口號:一次編譯、到處運行。

就是說代碼編譯好之后得到一個字節(jié)碼而不是傳統(tǒng)的機器碼的程序,當我們運行在不同的操作系統(tǒng)上的時候,每個操作系統(tǒng)都有相應的 Java 虛擬機來解釋這些字節(jié)碼,因為跟操作系統(tǒng)平臺相關的部分由 Java 虛擬機來負責,這就是所謂的跨平臺。對比一下傳統(tǒng)的程序,一個 Windows 上的 exe 沒辦法運行在 Linux 上,反過來也是一樣。

另外,Java 使用的包名和類路徑也是為跨平臺提供支持的,包名的層次結構就是與目標樹和jar內的目錄結構對應的,因此程序只看到一個邏輯的層次結構,真實運行時我們則是在命令行給出 -classpath 參數(shù),這時的 classpath 參數(shù)則是與操作系統(tǒng)平臺相關的,但要知道這與代碼本身沒有關系,代碼依然是跨平臺的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容