中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

java的編譯運(yùn)行方式是什么-創(chuàng)新互聯(lián)

這篇文章主要介紹了java的編譯運(yùn)行方式是什么,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

成都創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供平武企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、html5、小程序制作等業(yè)務(wù)。10年已為平武眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

不同于C/C++語(yǔ)言編譯后可以直接生成CPU所能理解的代碼格式,俗稱(chēng)機(jī)器碼,Java則將代碼編譯成虛擬機(jī)可執(zhí)行的字節(jié)碼。Java虛擬機(jī)可以由硬件實(shí)現(xiàn),也可以根據(jù)不同平臺(tái)(Windows,Linux,Mac等)由軟件來(lái)實(shí)現(xiàn)。這么做的好處在于,一旦Java代碼被編譯成字節(jié)碼,它變可以在不同的虛擬機(jī)平臺(tái)上運(yùn)行,這就是我們經(jīng)常說(shuō)的“一次編譯,到處運(yùn)行”。除此之外,虛擬機(jī)還提供了諸如托管環(huán)境、數(shù)組越界、動(dòng)態(tài)類(lèi)型、安全權(quán)限等動(dòng)態(tài)檢測(cè),使我們能夠更加關(guān)注業(yè)務(wù)邏輯的開(kāi)發(fā)。

Java虛擬機(jī)

從虛擬機(jī)的角度來(lái)看,執(zhí)行Java代碼首先需要將它編譯而成的class文件加載到Java虛擬機(jī)中。加載后的Java類(lèi)會(huì)被存放于方法區(qū)中。Java虛擬機(jī)將運(yùn)行時(shí)內(nèi)存區(qū)域劃分為五個(gè)部分,分別為方法區(qū)、堆、PC寄存器、Java方法棧和本地方法棧。

Java運(yùn)行過(guò)程

在運(yùn)行過(guò)程中,每當(dāng)調(diào)用進(jìn)入一個(gè)Java 方法,Java虛擬機(jī)會(huì)在當(dāng)前線程的Java方法棧中生成一個(gè)棧幀,泳衣保存局部變量及字節(jié)碼的操作數(shù)。這個(gè)幀的大小是提前計(jì)算好的,而且Java虛擬機(jī)不要求棧的內(nèi)存是連續(xù)的。當(dāng)退出方法時(shí),不管是正常還是異常返回,Java虛擬機(jī)都會(huì)彈出當(dāng)前幀并拋棄。從硬件的角度來(lái)看,Java字節(jié)碼無(wú)法直接運(yùn)行,因而Java虛擬器需要將字節(jié)碼翻譯成CPU能夠識(shí)別的機(jī)器碼。
上述翻譯過(guò)程有兩種情況:第一種是解釋執(zhí)行,即逐條將字節(jié)碼翻譯成機(jī)器碼并執(zhí)行;第二種是即時(shí)編譯(Just-In-Time compilation, JIT),將一條方法中的所有字節(jié)碼翻譯成機(jī)器碼后再執(zhí)行。

前者的優(yōu)勢(shì)在于無(wú)需等待編譯,后者的優(yōu)勢(shì)在于實(shí)際運(yùn)行速度更快。Java虛擬機(jī)為了實(shí)現(xiàn)更快的運(yùn)行速度,通常兩種方式都會(huì)采用,即混合模式,綜合兩者的優(yōu)點(diǎn)。即時(shí)編譯技術(shù)建立在二八定律的理論基礎(chǔ)上的,即百分之二十的代碼占用了百分之八十的計(jì)算資源。針對(duì)大部分的不常用代碼采用解釋執(zhí)行,對(duì)于少部分常用的代碼采用即時(shí)編譯,已達(dá)到理性的運(yùn)行速度。

在計(jì)算資源充足的情況下,字節(jié)碼的解釋執(zhí)行和即時(shí)編譯和同時(shí)運(yùn)行。一旦編譯完成之后,下次可替換解釋執(zhí)行,直接運(yùn)行機(jī)器代碼。總的來(lái)說(shuō)Java代碼的執(zhí)行效率,跟虛擬機(jī)的配置和運(yùn)行方式有很大關(guān)系,針對(duì)Java虛擬機(jī)的優(yōu)化可以有效的提高代碼的運(yùn)行效率。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享java的編譯運(yùn)行方式是什么內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!

新聞名稱(chēng):java的編譯運(yùn)行方式是什么-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)URL:http://m.rwnh.cn/article30/doehpo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站標(biāo)簽優(yōu)化動(dòng)態(tài)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)虛擬主機(jī)、品牌網(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è)網(wǎng)站維護(hù)公司
乐清市| 商水县| 筠连县| 深泽县| 宁都县| 双桥区| 岳普湖县| 达州市| 古交市| 巴林左旗| 云龙县| 株洲市| 锦屏县| 九台市| 宁陕县| 罗江县| 镇宁| 正安县| 承德市| 改则县| 西华县| 木里| 万州区| 镇平县| 镇远县| 兴安县| 荆门市| 伊吾县| 高碑店市| 贵定县| 夏邑县| 石嘴山市| 高青县| 卓资县| 黄冈市| 巴彦县| 清水河县| 灵台县| 新巴尔虎右旗| 淮北市| 大庆市|