c語言嵌入式開發(fā) java虛擬機(jī)是用什么語言編寫的?它的原理誰能通俗的講出來嗎?
java虛擬機(jī)是用什么語言編寫的?它的原理誰能通俗的講出來嗎?Java虛擬機(jī)的功能是執(zhí)行Java字節(jié)碼,其編碼實現(xiàn)是一個死循環(huán)。每個循環(huán)都是獲取字節(jié)碼并執(zhí)行字節(jié)碼的過程,因此與其他程序沒有本質(zhì)區(qū)別。主
java虛擬機(jī)是用什么語言編寫的?它的原理誰能通俗的講出來嗎?
Java虛擬機(jī)的功能是執(zhí)行Java字節(jié)碼,其編碼實現(xiàn)是一個死循環(huán)。每個循環(huán)都是獲取字節(jié)碼并執(zhí)行字節(jié)碼的過程,因此與其他程序沒有本質(zhì)區(qū)別。主流的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é)合起來作為輔助工具。有其他語言,但不是主流。
Java語言和C語言是同一個級別的嗎?
如果你懂C語言,學(xué)習(xí)C和Java會更容易。Java已經(jīng)有了構(gòu)建塊。積木在一起是一個項目。C語言必須一步一步地構(gòu)造積木,而逐步地構(gòu)建積木是一個項目。
一個更恰當(dāng)?shù)念惐仁荍ava是傻瓜,而C需要更復(fù)雜的設(shè)置來生成更好的照片。Java有很多方法,別人都為你做過,你可以用。但是在C語言中,您必須自己編寫這些方法,然后再次使用它們。
如果你學(xué)好C語言,你可以理解許多更深入的計算機(jī)語言原理。如果你學(xué)好了java,你就是別人構(gòu)建的平臺上的應(yīng)用專家。但是C仍然有很多應(yīng)用。
C與Java類似。