亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                淺析 Java 程序語言的運(yùn)行機(jī)制

                淺析 Java 程序語言的運(yùn)行機(jī)制

                Java 程序語言的運(yùn)行機(jī)制

                Java 是一門高級語言,它既包含解釋型語言的特征, 也具有編譯型語言的特征。因?yàn)?Java 應(yīng)用程序是需要先經(jīng)過編譯,再進(jìn)行解釋兩個步驟。

                解釋型和編譯型

                計(jì)算機(jī)按照程序的執(zhí)行方式可以分為解釋型和編譯型。

                解釋型語言(Interpreted language)

                這種類型的編程語言,會將代碼一句一句直接運(yùn)行,不需要像編譯語言(Compiled language)一樣,經(jīng)過編譯器先行編譯為機(jī)器代碼,之后再運(yùn)行。這種編程語言需要利用解釋器,在運(yùn)行期,動態(tài)將代碼逐句解釋(interpret)為機(jī)器代碼,或是已經(jīng)預(yù)先編譯為機(jī)器代碼的子程序,之后再運(yùn)行。

                理論上,任何編程語言都可以是編譯式,或解釋型的。它們之間的區(qū)別,僅與程序的應(yīng)用有關(guān)。許多編程語言同時(shí)采用編譯器與解釋器來實(shí)現(xiàn),其中包括 Lisp,Ruby,JavaScript 與 Python。JAVA 及 C# 采用混合方式,先將代碼編譯為字節(jié)碼,在運(yùn)行時(shí)再進(jìn)行解釋。

                編譯型語言(Compiled language)

                這類型的編程語言,通過編譯器來實(shí)現(xiàn)。它不像解釋型語言一樣,由解釋器將代碼一句一句運(yùn)行,而是以編譯器,先將代碼編譯為機(jī)器代碼,再加以運(yùn)行。理論上,任何編程語言都可以是編譯式,或直譯式的。它們之間的區(qū)別,僅與程序的應(yīng)用有關(guān)。

                兩者的優(yōu)缺點(diǎn)

                一般而言,用編譯語言寫成的程序,在運(yùn)行期的運(yùn)行速度,通常比用解釋型語言寫的程序快。因?yàn)槌绦蛟诰幾g期,已經(jīng)被預(yù)先編譯成機(jī)器代碼,可以直接運(yùn)行,不用像解釋型語言一樣,還要多一道直譯程序。

                但是要先進(jìn)行編譯,之后才能運(yùn)行程序,這也造成了編譯語言的缺點(diǎn)。一般而言,編譯語言的程序開發(fā)速度,以及調(diào)試時(shí)間,都是比較長的。因?yàn)樗幌窠忉屝驼Z言可以寫完一行,或一小段程序之后,馬上運(yùn)行,馬上調(diào)試。解釋型語言通常讓程序開發(fā)的整體時(shí)間變少,在開發(fā)過程中,程序開發(fā)人員也可以更彈性、快速的測試自己的想法。

                為了改善編譯語言的效率而發(fā)展出的即時(shí)編譯技術(shù),已經(jīng)縮小了這兩種語言間的差距。這種技術(shù)混合了編譯語言與解釋型語言的優(yōu)點(diǎn),它像編譯語言一樣,先把程序源代碼編譯成字節(jié)碼。到運(yùn)行期時(shí),再將字節(jié)碼直譯,之后運(yùn)行。Java 與 LLVM 是這種技術(shù)的代表產(chǎn)物。

                Java 的運(yùn)行機(jī)制和 JVM

                Java 語言相對于獨(dú)立的解釋型和編譯型, 又有一些不一樣。區(qū)別在于編程器編譯的不是最終可以運(yùn)行的機(jī)器語言, 而是能夠運(yùn)行在 Java 虛擬機(jī) ( JVM: Java Virtual Machine)中的字節(jié)碼。Java 虛擬機(jī)只要是用來運(yùn)行 Java字節(jié)碼文件的虛擬機(jī)。不同的平臺上編譯器提供了統(tǒng)一的編程接口,而 Java 編譯器只需要面向 Java 虛擬機(jī), 生成虛擬機(jī)能夠運(yùn)行的代碼。 然后由 Java 虛擬機(jī)解釋執(zhí)行,并且在虛擬機(jī)中把代碼轉(zhuǎn)換成平臺能夠識別的機(jī)器碼來運(yùn)行程序, 從而做到了一次編譯, 多個平臺運(yùn)行的跨平臺特性。

                流程大概如下:

                這里 JVM 也就是 Java 虛擬機(jī)中介的概念。 原先你要去租房, 你有一個要租房的“需求”(源代碼), 而每個房東都是你的“運(yùn)行”環(huán)境。 沒看一次房子都需要單獨(dú)的找到對應(yīng)房子的房東進(jìn)行 “租”(編譯) 的過程。 這個時(shí)候, 有個房屋托管(虛擬機(jī))說, 你不要找房東了太麻煩, 我這有這個區(qū)的“房源”, 你來找我就好, 這樣你以后租房子就可以只找這個中介就可以看這個區(qū)的房子, 這樣的話, 你不用來回和不同的房東打交道, 你也不需要知道這些房東是男是女, 是好說話還是不好說話。 但是既然是中間打的交道, 就需要有一些性能的損耗(傭金)。并且你能看多少套房子,就取決于中介有多少房源。 也就是 Java 虛擬機(jī)能在那運(yùn)行, 你的程序就可以在那運(yùn)行。

                JVM

                JVM 是 Java Virtual Machine 的縮寫。它是一種基于計(jì)算設(shè)備的規(guī)范,是一臺虛擬機(jī),即虛構(gòu)的計(jì)算機(jī)。

                JVM屏蔽了具體操作系統(tǒng)平臺的信息(顯然,就像是我們在電腦上開了個虛擬機(jī)一樣),當(dāng)然,JVM 執(zhí)行字節(jié)碼時(shí)實(shí)際上還是要解釋成具體操作平臺的機(jī)器指令的。

                通過 JVM,Java 實(shí)現(xiàn)了平臺無關(guān)性,Java 語言在不同平臺運(yùn)行時(shí)不需要重新編譯,只需要在該平臺上部署 JVM 就可以了。因而能實(shí)現(xiàn)一次編譯多處運(yùn)行。(就像是你的虛擬機(jī)也可以在任何安了 VMWare 的系統(tǒng)上運(yùn)行)。

                JVM結(jié)構(gòu)

                • 程序計(jì)數(shù)器(Program Counter)
                • Java堆(Heap)
                • Java虛擬機(jī)棧(Stack)
                • 本地方法棧(Native Stack)
                • 方法區(qū)(Method Area)
                鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年7月2日 23:15
                下一篇 2022年7月2日 23:15

                相關(guān)推薦

                • 京東快遞跨省幾天能到(京東一般多久到貨)

                  由于覺得京東平臺的物流效勞十分的不錯,而且商品的質(zhì)量都比擬有保證。在京東平臺購物的話,普通多久時(shí)間會到貨?下面的內(nèi)容停止引見。 京東普通多久到貨? 詳細(xì)要看發(fā)貨地址和你所在的地址的…

                  2022年11月26日
                • 游戲平臺有哪些(游戲平臺有哪些)

                  簡要回答 游戲平臺指的是多人通過互聯(lián)網(wǎng)在線游戲的平臺,例如qq游戲,聯(lián)眾世界,浩方電競平臺,VS競技游戲平臺等,只要你下載平臺,下載相關(guān)游戲,就能實(shí)現(xiàn)對戰(zhàn),擺脫了局域網(wǎng)的限制。 詳…

                  2022年11月25日
                • 淘寶直播庫存哪里拿貨(淘寶哪里看庫存)

                  近年倆直播帶貨越來越火爆,抖音、淘寶、拼多多等平臺都有直播帶貨功能,其中淘寶直播時(shí)主流帶貨平臺,一些小伙伴也紛紛加入,但是作為新手不知道淘寶直播庫存哪里拿貨?下面小編為大家?guī)硖詫殹?/p>

                  2022年11月25日
                • 淘寶直播沒有貨源怎么解決(淘寶直播沒有貨源怎么辦)

                  淘寶是很多人喜歡的購物【平臺,里面的活躍用戶很多,流量很大,所以不少商家在上面開店,為了提高銷量也會開通直播帶貨,也有一些主播沒有貨源,那么淘寶直播沒有貨源怎么解決?下面小編為大家…

                  2022年11月25日
                • 4308米!“探索二號”科考船攜深海浮游式作業(yè)平臺完成海試

                  近日,我國“探索二號”科考船攜深海浮游式移動作業(yè)平臺與中繼器,赴南海開展海上試驗(yàn)。該平臺完成了1500米級、2500米級、4500米級三個由淺到深級別的海試驗(yàn)證,最大工作深度達(dá)到4…

                  2022年11月25日
                • 手機(jī)上怎么買世界杯彩票(手機(jī)上怎么買世界杯輸贏)

                  現(xiàn)在手機(jī)已經(jīng)成為大家生活中非常重要的工具之一,只要一部手機(jī)就可以解決衣食住行,最近世界杯火熱進(jìn)行,一些小伙伴想要買彩票,那么,手機(jī)上可以買世界杯彩票嗎?世界杯買球軟件是真的嗎?手機(jī)…

                  2022年11月25日
                • 博客營銷的3大優(yōu)勢解析(博客營銷怎么做)

                  不知不覺已經(jīng)寫了24篇文章,加上這篇是第25篇了,都是自己這幾年來用過的營銷方法,如果遇到有些不懂的,我會咨詢我的朋友和同事幫忙,盡量讓每一篇有價(jià)值,哪怕是對大家有一點(diǎn)點(diǎn)幫助也行,…

                  2022年11月25日
                • 閑魚上賣貨怎么快速賺錢(閑魚賣貨怎么快速賣出)

                  閑魚這個平臺由于主要是做二手交易的,因此入駐門檻要比其他電商平臺低很多,而且流量也比較大。所以現(xiàn)在選擇在閑魚上賣貨的人也是比較多的,只要你選擇好賣的產(chǎn)品,一般人都是可以在閑魚這個平…

                  2022年11月24日
                • 淘寶直播平臺抽成多少(淘寶直播平臺抽成比例)

                  隨著時(shí)代的發(fā)展,現(xiàn)在直播帶貨已經(jīng)成為主要帶貨方式,其中淘寶是主流帶貨平臺,不少人在上面直播帶貨賺錢,一些小伙伴也想加入,那么淘寶直播平臺抽成多少?下面小編為大家?guī)硖詫氈辈テ脚_抽成…

                  2022年11月24日
                • 2022世界杯免費(fèi)直播平臺有哪些(2022世界杯免費(fèi)直播平臺)

                  世界杯近期的人氣超級火爆的,大家雖然不能去現(xiàn)場觀看卡塔爾世界杯比賽,不過國內(nèi)的球迷也都第一時(shí)間通過世界杯了解賽事情況。2022世界杯免費(fèi)直播平臺有哪些?據(jù)悉本屆世界杯國內(nèi)的直播平臺…

                  2022年11月24日

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息