2 回答

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊
java編譯器要將java代碼轉(zhuǎn)為Unicode字節(jié)碼(byte)主要原因是為了實(shí)現(xiàn)跨平臺(tái),因?yàn)樵诓煌臋C(jī)器字長的機(jī)器上表示相同的數(shù)據(jù)類型數(shù)據(jù)需要的字節(jié)數(shù)是不同的,而一個(gè)字節(jié)是固定由8位二進(jìn)制數(shù)表示,如果我們直接編譯轉(zhuǎn)為bit,等于是根據(jù)編譯程序的機(jī)器環(huán)境已經(jīng)確定了表示該數(shù)據(jù)類型需要的字節(jié)數(shù),這樣的后果是可能會(huì)造成所給的字節(jié)數(shù)小于程序目標(biāo)使用機(jī)器實(shí)際上表示該數(shù)據(jù)類型的需要而縮小該數(shù)據(jù)類型的數(shù)值表示范圍,從而導(dǎo)致數(shù)值越界造成程序出現(xiàn)Bug。而JVM就像Java程序和機(jī)器硬件之間的一座橋梁,前面得到的Unicode字節(jié)碼(byte)組成的.class文件根據(jù)機(jī)器硬件環(huán)境來進(jìn)行編譯,從而使應(yīng)用程序能在各種平臺(tái)上運(yùn)行一致。
添加回答
舉報(bào)