java中native有什么作用 java虛擬機(jī)是用什么語(yǔ)言編寫的?它的原理誰(shuí)能通俗的講出來(lái)嗎?
java虛擬機(jī)是用什么語(yǔ)言編寫的?它的原理誰(shuí)能通俗的講出來(lái)嗎?java虛擬機(jī)功能就是執(zhí)行Java字節(jié)碼,其編碼實(shí)現(xiàn)就是一個(gè)死循環(huán),每一次循環(huán)就是取字節(jié)碼,執(zhí)行字節(jié)碼的過(guò)程,所以跟其它程序沒(méi)有什么本質(zhì)區(qū)
java虛擬機(jī)是用什么語(yǔ)言編寫的?它的原理誰(shuí)能通俗的講出來(lái)嗎?
java虛擬機(jī)功能就是執(zhí)行Java字節(jié)碼,其編碼實(shí)現(xiàn)就是一個(gè)死循環(huán),每一次循環(huán)就是取字節(jié)碼,執(zhí)行字節(jié)碼的過(guò)程,所以跟其它程序沒(méi)有什么本質(zhì)區(qū)別。主流的javaVM還是用C語(yǔ)言實(shí)現(xiàn)的居多,再以匯編為輔助,用java實(shí)現(xiàn)javaVM的情況有,但不多。
下面是一個(gè)在智能設(shè)備里用C語(yǔ)言實(shí)現(xiàn)虛擬機(jī)的片段。
這一段代碼就是對(duì)short加法這個(gè)字節(jié)碼的實(shí)現(xiàn)。
而這一段代碼就是取字節(jié)碼并執(zhí)行,是不是覺(jué)得JavaVM也不過(guò)如此呢。
有不少人會(huì)為了優(yōu)化虛擬機(jī)的效率,而選擇用匯編把這些執(zhí)行頻度很高的代碼重寫一下。
總結(jié)就是C實(shí)現(xiàn)的多,會(huì)結(jié)合匯編作為輔助。其它語(yǔ)言也有,但不是主流。