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