Java的字節(jié)碼如何理解-創(chuàng)新互聯(lián)

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

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供麻江網(wǎng)站建設(shè)、麻江做網(wǎng)站、麻江網(wǎng)站設(shè)計(jì)、麻江網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、麻江企業(yè)網(wǎng)站模板建站服務(wù),10年麻江做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

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

看完上述內(nèi)容,你們掌握J(rèn)ava的字節(jié)碼如何理解的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!

分享標(biāo)題:Java的字節(jié)碼如何理解-創(chuàng)新互聯(lián)
新聞來(lái)源:http://muchs.cn/article8/dshdip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、網(wǎng)站改版標(biāo)簽優(yōu)化、網(wǎng)站營(yíng)銷營(yíng)銷型網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)