1 回答

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
首先,java虛擬機(jī)和你理解的虛擬機(jī)不同。我們都知道java的跨平臺(tái)性高,那么高在哪里呢。我們把java和c做個(gè)比較。首先c語(yǔ)言通過(guò)編譯器、匯編器翻譯出本電腦可以運(yùn)行的機(jī)器代碼。由于電腦有很多類(lèi)型,就會(huì)有不同的機(jī)器代碼格式,在你電腦上生成的代碼在別的型號(hào)的電腦上就不能運(yùn)行或是會(huì)出現(xiàn)錯(cuò)誤。所以跨平臺(tái)性低。
而java在此基礎(chǔ)上進(jìn)行了改進(jìn),先將源碼翻譯成一種叫做字節(jié)碼的東西(類(lèi)似于編譯器中的中間代碼),然后通過(guò)網(wǎng)絡(luò)傳輸?shù)揭\(yùn)行機(jī)器上,你根據(jù)自己的電腦型號(hào)下載了相應(yīng)的jre,接受字節(jié)碼后就會(huì)通過(guò)jre中的jvm翻譯成這臺(tái)電腦可以運(yùn)行的機(jī)器碼。這也就是我們所說(shuō)的,一次編寫(xiě),全部運(yùn)行。當(dāng)然,他也有缺點(diǎn),電腦型號(hào)越多,就會(huì)有越多種jre,需要很多人來(lái)進(jìn)行維護(hù),花費(fèi)很大。
另外,windows系統(tǒng)不帶jre,不能運(yùn)行java程序,需要自己進(jìn)行下載。
- 1 回答
- 0 關(guān)注
- 800 瀏覽
添加回答
舉報(bào)