java虛擬機 java虛擬機是用什么語言編寫的?它的原理誰能通俗的講出來嗎?
java虛擬機是用什么語言編寫的?它的原理誰能通俗的講出來嗎?Java虛擬機的功能是執(zhí)行Java字節(jié)碼,其編碼實現(xiàn)是一個死循環(huán)。每個循環(huán)都是獲取字節(jié)碼并執(zhí)行字節(jié)碼的過程,因此與其他程序沒有本質區(qū)別。主
java虛擬機是用什么語言編寫的?它的原理誰能通俗的講出來嗎?
Java虛擬機的功能是執(zhí)行Java字節(jié)碼,其編碼實現(xiàn)是一個死循環(huán)。每個循環(huán)都是獲取字節(jié)碼并執(zhí)行字節(jié)碼的過程,因此與其他程序沒有本質區(qū)別。主流的JavaVM大多是用C語言實現(xiàn)的,然后用匯編語言輔助實現(xiàn),用Java實現(xiàn)JavaVM的情況有一些,但不多。
下面是使用C語言在智能設備中實現(xiàn)虛擬機的一個片段。
此代碼是短加法字節(jié)碼的實現(xiàn)。
這段代碼只是獲取字節(jié)碼并執(zhí)行它。你認為JavaVM就是這樣嗎。
為了優(yōu)化虛擬機的效率,很多人選擇用匯編的方式重寫執(zhí)行頻率高的代碼。
小結是C語言實現(xiàn)的許多,將與匯編結合起來作為輔助工具。有其他語言,但不是主流。
《深入理解Java虛擬機》過時了嗎?
我們可以負責任地說,它目前沒有過時,在不久的將來也不會過時。“深入理解Java虛擬機”是否過時,取決于Java語言本身是否過時。目前,Java在很多領域都扮演著重要的角色。在語言排名中,它也長期處于前列。Java本身的可移植性使得許多服務器和web后端開發(fā)都傾向于添加,而Java本身的語言特性,以及豐富的庫,使得它在許多語言中都經久不衰。作為java開發(fā)中一個至關重要的虛擬機,開發(fā)人員對其機制的理解程度如何,也是區(qū)分優(yōu)秀java開發(fā)人員和普通開發(fā)人員的標準之一。所以作為一個java開發(fā)人員,如果你想在技術上有更深入的開發(fā),虛擬機機制是一個必須跨越的障礙。而《深入了解Java虛擬機》是一本介紹這方面知識的比較經典的書,值得推薦。
為什么安卓不放棄虛擬機機制,轉變更高效的方式,例如ios一樣?
那不是Linux手機嗎?很多制造商都做過,但什么也沒做。如果Android沒有接近Java,它就不會處于目前的狀況。Java開發(fā)人員遠不止是C/C。WP就死在這上面了。如果IOS沒有硬件的支持,它早就死了。
一開始,Android希望構建一個跨平臺的移動系統(tǒng)。事實上,以前有x86和MIPS手機,但后來被arm控制,這讓人覺得這個JVM是個負擔。