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