jdk中的哪些源碼是必看的 java虛擬機(jī)是用什么語言編寫的?它的原理誰能通俗的講出來嗎?
java虛擬機(jī)是用什么語言編寫的?它的原理誰能通俗的講出來嗎?Java與其他虛擬機(jī)沒有區(qū)別,因為它每次都可以執(zhí)行字節(jié)碼。主流的JavaVM大多是用C語言實現(xiàn)的,然后用匯編語言輔助實現(xiàn),用Java實現(xiàn)J
java虛擬機(jī)是用什么語言編寫的?它的原理誰能通俗的講出來嗎?
Java與其他虛擬機(jī)沒有區(qū)別,因為它每次都可以執(zhí)行字節(jié)碼。主流的JavaVM大多是用C語言實現(xiàn)的,然后用匯編語言輔助實現(xiàn),用Java實現(xiàn)JavaVM的情況有一些,但不多。
下面是使用C語言在智能設(shè)備中實現(xiàn)虛擬機(jī)的一個片段。
此代碼是短加法字節(jié)碼的實現(xiàn)。
這段代碼只是獲取字節(jié)碼并執(zhí)行它。你認(rèn)為JavaVM就是這樣嗎。
為了優(yōu)化虛擬機(jī)的效率,很多人選擇用匯編的方式重寫執(zhí)行頻率高的代碼。
小結(jié)是C語言實現(xiàn)的許多,將與匯編結(jié)合起來作為輔助工具。有其他語言,但不是主流。