成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Java虛擬機JVM運行時的示例分析

這篇文章主要為大家展示了“Java虛擬機JVM運行時的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“Java虛擬機JVM運行時的示例分析”這篇文章吧。

成都創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)服務(wù)商,為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)服務(wù),網(wǎng)站設(shè)計,網(wǎng)站改版維護等一站式綜合服務(wù)型公司,專業(yè)打造企業(yè)形象網(wǎng)站,讓您在眾多競爭對手中脫穎而出成都創(chuàng)新互聯(lián)公司

JVM(Java虛擬機)是一個抽象的計算模型。就如同一臺真實的機器,它有自己的指令集和執(zhí)行引擎,可以在運行時操控內(nèi)存區(qū)域。目的是為構(gòu)建在其上運行的應(yīng)用程序提供一個運行環(huán)境。JVM可以解讀指令代碼并與底層進行交互:包括操作系統(tǒng)平臺和執(zhí)行指令并管理資源的硬件體系結(jié)構(gòu)。

Java虛擬機JVM運行時的示例分析

我們知道的JVM內(nèi)存區(qū)域有:堆和棧,這是一種泛的分法,也是按運行時區(qū)域的一種分法,堆是所有線程共享的一塊區(qū)域,而棧是線程隔離的,每個線程互不共享。

線程不共享區(qū)域

每個線程的數(shù)據(jù)區(qū)域包括程序計數(shù)器、虛擬機棧和本地方法棧,它們都是在新線程創(chuàng)建時才創(chuàng)建的。

程序計數(shù)器(Program Counter Rerister)

程序計數(shù)器區(qū)域一塊內(nèi)存較小的區(qū)域,它用于存儲線程的每個執(zhí)行指令,每個線程都有自己的程序計數(shù)器,此區(qū)域不會有內(nèi)存溢出的情況。

虛擬機棧(VM Stack)

虛擬機棧描述的是Java方法執(zhí)行的內(nèi)存模型,每個方法被執(zhí)行的時候都會同時創(chuàng)建一個棧幀(Stack Frame)用于存儲局部變量表、操作數(shù)棧、動態(tài)鏈接、方法出口等信息。每一個方法被調(diào)用直至執(zhí)行完成的過程就對應(yīng)著一個棧幀在虛擬機棧中從入棧到出棧的過程。

本地方法棧(Native Method Stack)

本地方法棧用于支持本地方法(native標識的方法,即非Java語言實現(xiàn)的方法)。

虛擬機棧和本地方法棧,當線程請求分配的棧容量超過JVM允許的最大容量時拋出StackOverflowError異常。

線程不共享區(qū)域如下圖綠色背景所示。

Java虛擬機JVM運行時的示例分析

線程共享區(qū)域

線程共享區(qū)域包含:堆和方法區(qū)。

堆(Heap)

堆是最常處理的區(qū)域,它存儲在JVM啟動時創(chuàng)建的數(shù)組和對象,JVM垃圾收集也主要是在堆上面工作。

如果實際所需的堆超過了自動內(nèi)存管理系統(tǒng)能提供的最大容量時拋出OutOfMemoryError異常。

方法區(qū)(Method Area)

方法區(qū)是可供各條線程共享的運行時內(nèi)存區(qū)域。存儲了每一個類的結(jié)構(gòu)信息,例如運行時常量池(Runtime Constant Pool)、字段和方法數(shù)據(jù)、構(gòu)造函數(shù)和普通方法的字節(jié)碼內(nèi)容、還包括一些在類、實例、接口初始化時用到的特殊方法。

當創(chuàng)建類和接口時,如果構(gòu)造運行時常量池所需的內(nèi)存空間超過了方法區(qū)所能提供的最大內(nèi)存空間后就會拋出OutOfMemoryError

運行時常量池(Runtime Constant Pool)

運行時常量池是方法區(qū)的一部分,每一個運行時常量池都分配在JVM的方法區(qū)中,在類和接口被加載到JVM后,對應(yīng)的運行時常量池就被創(chuàng)建。運行時常量池是每一個類或接口的常量池(Constant_Pool)的運行時表現(xiàn)形式,它包括了若干種常量:編譯器可知的數(shù)值字面量到必須運行期解析后才能獲得的方法或字段的引用。

如果方法區(qū)的內(nèi)存空間不能滿足內(nèi)存分配請求,那Java虛擬機將拋出一個OutOfMemoryError異常。

Java虛擬機JVM運行時的示例分析

棧包含F(xiàn)rames,當調(diào)用方法時,F(xiàn)rame被推送到堆棧。一個Frame包含局部變量數(shù)組、操作數(shù)棧、常量池引用。

以上是“Java虛擬機JVM運行時的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章題目:Java虛擬機JVM運行時的示例分析
文章轉(zhuǎn)載:http://jinyejixie.com/article2/ghhoic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司響應(yīng)式網(wǎng)站、面包屑導航建站公司、企業(yè)網(wǎng)站制作、做網(wǎng)站

廣告

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

成都網(wǎng)站建設(shè)公司
绩溪县| 中牟县| 东阳市| 工布江达县| 南开区| 隆安县| 青岛市| 定远县| 栖霞市| 平湖市| 突泉县| 镇巴县| 平武县| 社旗县| 嵊泗县| 贡嘎县| 舒城县| 霸州市| 寿光市| 固原市| 福建省| 克什克腾旗| 青铜峡市| 临沭县| 临西县| 惠来县| 兰坪| 沙坪坝区| 临安市| 余江县| 宜春市| 东平县| 高唐县| 湖州市| 沽源县| 涞源县| 永德县| 平凉市| 敦煌市| 海丰县| 怀远县|