
Java程序編譯之后的代碼不是能被硬件系統(tǒng)直接運(yùn)行的代碼,而是一種“中間碼”—— 字節(jié)碼。然后不同的硬件平臺上安裝有不同的Java虛擬機(jī)(JVM),由JVM來把字節(jié)碼再“翻譯”成所對應(yīng)的硬件平臺能夠執(zhí)行的代碼。因此對于Java編程者來說,不需要考慮硬件平臺是什么。所以Java可以跨平臺。因?yàn)樗刑摂M機(jī)(JVM),JAVA程序不是直接在電腦上運(yùn)行的,是在虛擬機(jī)上進(jìn)行的,每個(gè)系統(tǒng)平臺都是有自己的虛擬機(jī)(JVM),所以JAVA語言能跨平臺。
Java代碼不是直接運(yùn)行在CPU上,而是運(yùn)行在java虛機(jī)(簡稱JVM)上的。java是先把java文件編譯成二進(jìn)制字節(jié)碼的class文件,jvm就解釋執(zhí)行class文件。就是因?yàn)閖ava是運(yùn)行在jvm上的,所以它的代碼就能不經(jīng)修改,就能在不同平臺的jvm上運(yùn)行(在UNIX用UNIX的jvm,在linux上用linux的jvm,在windows上用windows的jvm),假如用windows移植到UNIX,只需把java文件是UNIX的jvm上編譯成class文件,然后用jvm運(yùn)行就可以了。
Java虛擬機(jī)(Java Virtual Machine) 簡稱JVM,Java為什么能跨平臺,.NET為什么能跨語言?Java之所以能跨平臺,是因?yàn)閖ava虛擬機(jī)能跨平臺。.NET 之所以能跨語言,就簡單的說吧 任何代碼在最終要變成機(jī)器語言,所以 對于機(jī)器來說無論你用才C# 還是VB.NET 最后的意思表達(dá)都是一樣的, 只不過機(jī)器在中做了翻譯的過程; 中間有N 多專有名詞反正都是通過.net Framework 所謂的虛擬機(jī)。
JAVA語言為什么能跨平臺?你是怎么看的?
引自:JAVA語言為什么能跨平臺? 作者:程序員幫主
原文地址:http://www.weightlossorganic.com/article/5891409822526867.htm
關(guān)于一覽 | 聯(lián)系我們 | 用戶反饋
深圳市一覽網(wǎng)絡(luò)股份有限公司 版權(quán)所有 ©2006-2025 粵ICP備08106584號 增值電信業(yè)務(wù)經(jīng)營許可證:粵B2-20070017