溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java的字節(jié)碼如何理解

發(fā)布時間:2022-01-11 15:49:31 來源:億速云 閱讀:131 作者:柒染 欄目:編程語言

Java的字節(jié)碼如何理解,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

字節(jié)碼是一套設(shè)計用來在Java 運(yùn)行時系統(tǒng)下執(zhí)行的高度優(yōu)化的指令集,該Java 運(yùn)行時系統(tǒng)稱為Java 虛擬機(jī)(JavaVirtual Machine,JVM)。在其標(biāo)準(zhǔn)形式下,JVM是一個字節(jié)碼解釋器。這可能有點讓人吃驚,因為像C++之類語言的編譯結(jié)果是可執(zhí)行的代碼。事實上,出于對性能的考慮,許多現(xiàn)代語言都被設(shè)計為編譯型,而不是解釋型。然而,正是通過JVM運(yùn)行Java 程序才有助于解決在Internet 上下載程序的主要問題。這就是Java 輸出字節(jié)碼的原因。
將一個Java 程序翻譯成字節(jié)碼,有助于它更容易地在一個大范圍的環(huán)境下運(yùn)行程序。原因非常直接:只要在各種平臺上都實現(xiàn)Java 虛擬機(jī)就可以了。在一個給定的系統(tǒng)中,只要系統(tǒng)運(yùn)行包存在,任何Java 程序就可以在該系統(tǒng)上運(yùn)行。記?。罕M管不同平臺的Java 虛擬機(jī)的細(xì)節(jié)有所不同,但它們都解釋同樣的Java 字節(jié)碼。如果一個Java 程序被編譯為本機(jī)代碼,那么對于連接到Internet 上的每一種CPU 類型,都要有該程序的對應(yīng)版本。這當(dāng)然不是一個可行的解決方案。因此,對字節(jié)碼進(jìn)行解釋是編寫真正可移植性程序的最容易的方法。
對Java 程序進(jìn)行解釋也有助于它的安全性。因為每個Java 程序的運(yùn)行都在Java 虛擬機(jī)的控制之下,Java 虛擬機(jī)可以包含這個程序并且能阻止它在系統(tǒng)之外產(chǎn)生副作用。正如你將看到的,Java 語言特有的某些限制增強(qiáng)了它的安全性。
被解釋的程序的運(yùn)行速度通常確實會比同一個程序被編譯為可執(zhí)行代碼的運(yùn)行速度慢一些。但是對Java 來說,這兩者之間的差別不太大。使用字節(jié)碼能夠使Java 運(yùn)行時系統(tǒng)的程序執(zhí)行速度比你想象的快得多。
盡管Java 被設(shè)計為解釋執(zhí)行的程序,但是在技術(shù)上Java 并不妨礙動態(tài)將字節(jié)碼編譯為本機(jī)代碼。SUN 公司在Java 2 發(fā)行版中提供了一個字節(jié)碼編譯器——JIT(Just In Time,即時)。JIT 是Java 虛擬機(jī)的一部分,它根據(jù)需要、一部分一部分地將字節(jié)碼實時編譯為可執(zhí)行代碼。它不能將整個Java 序一次性全部編譯為可執(zhí)行的代碼,因為Java 要執(zhí)行各種檢查,而這些檢查只有在運(yùn)行時才執(zhí)行。記住這一點是很重要的,因為JIT 只編譯它運(yùn)行時需要的代碼。盡管如此,這種即時編譯執(zhí)行的方法仍然使性能得到較大提高。即使對字節(jié)碼進(jìn)行動態(tài)編譯后,Java 程序的可移植性和安全性仍能得到保證,因為運(yùn)行時系統(tǒng)(該系統(tǒng)執(zhí)行編譯)仍然能夠控制Java 程序的運(yùn)行環(huán)境。不管Java 程序被按照傳統(tǒng)方式解釋為字節(jié)碼,還是被動態(tài)編譯為可執(zhí)行代碼,其功能是相同的。

看完上述內(nèi)容,你們掌握J(rèn)ava的字節(jié)碼如何理解的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI