java虛擬機(jī)怎么安裝 java虛擬機(jī)是用什么語(yǔ)言編寫的?它的原理誰(shuí)能通俗的講出來(lái)嗎?
java虛擬機(jī)是用什么語(yǔ)言編寫的?它的原理誰(shuí)能通俗的講出來(lái)嗎?Java虛擬機(jī)的功能是執(zhí)行Java字節(jié)碼,其編碼實(shí)現(xiàn)是一個(gè)死循環(huán)。每個(gè)循環(huán)都是獲取字節(jié)碼并執(zhí)行字節(jié)碼的過程,因此與其他程序沒有本質(zhì)區(qū)別。主
java虛擬機(jī)是用什么語(yǔ)言編寫的?它的原理誰(shuí)能通俗的講出來(lái)嗎?
Java虛擬機(jī)的功能是執(zhí)行Java字節(jié)碼,其編碼實(shí)現(xiàn)是一個(gè)死循環(huán)。每個(gè)循環(huán)都是獲取字節(jié)碼并執(zhí)行字節(jié)碼的過程,因此與其他程序沒有本質(zhì)區(qū)別。主流的JavaVM大多是用C語(yǔ)言實(shí)現(xiàn)的,然后用匯編語(yǔ)言輔助實(shí)現(xiàn),用Java實(shí)現(xiàn)JavaVM的情況有一些,但不多。
下面是使用C語(yǔ)言在智能設(shè)備中實(shí)現(xiàn)虛擬機(jī)的一個(gè)片段。
此代碼是短加法字節(jié)碼的實(shí)現(xiàn)。
這段代碼只是獲取字節(jié)碼并執(zhí)行它。你認(rèn)為JavaVM就是這樣嗎。
很多人選擇更有效地重寫匯編代碼。
小結(jié)是C語(yǔ)言實(shí)現(xiàn)的許多,將與匯編結(jié)合起來(lái)作為輔助工具。有其他語(yǔ)言,但不是主流。
為什么安卓不放棄虛擬機(jī)機(jī)制,轉(zhuǎn)變更高效的方式,例如ios一樣?
那不是Linux手機(jī)嗎?很多制造商都做過,但什么也沒做。如果Android沒有接近Java,它就不會(huì)處于目前的狀況。Java開發(fā)人員遠(yuǎn)不止是C/C。WP就死在這上面了。如果IOS沒有硬件的支持,它早就死了。
一開始,Android希望構(gòu)建一個(gè)跨平臺(tái)的移動(dòng)系統(tǒng)。事實(shí)上,以前有x86和MIPS手機(jī),但后來(lái)被arm控制,這讓人覺得這個(gè)JVM是個(gè)負(fù)擔(dān)。