最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Java虛擬機(JVM)運行時

 更新時間:2018年10月25日 10:07:26   作者:牛旦教育IT課堂  
JVM(Java虛擬機)是一個抽象的計算模型。這篇文章主要介紹了Java虛擬機(JVM)運行時的相關(guā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標(biāo)識的方法,即非Java語言實現(xiàn)的方法)。

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

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

線程共享區(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)容、還包括一些在類、實例、接口初始化時用到的特殊方法。

當(dāng)創(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異常。

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

總結(jié)

以上所述是小編給大家介紹的Java虛擬機(JVM)運行時,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Java Web學(xué)習(xí)之MySQL在項目中的使用方法

    Java Web學(xué)習(xí)之MySQL在項目中的使用方法

    mysql數(shù)據(jù)庫是我們在日常開發(fā)中經(jīng)常會用到的,下面這篇文章主要給大家介紹了關(guān)于Java Web學(xué)習(xí)之MySQL在項目中的使用方法,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • Java實現(xiàn)簡易計算器(逆波蘭表達(dá)式)

    Java實現(xiàn)簡易計算器(逆波蘭表達(dá)式)

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)簡易計算器,逆波蘭表達(dá)式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 關(guān)于Java異常處理的幾條建議_動力節(jié)點Java學(xué)院整理

    關(guān)于Java異常處理的幾條建議_動力節(jié)點Java學(xué)院整理

    Java提供了拋出異常、捕捉異常和finally語句的使用來處理程序異常,下面就來具體看一下關(guān)于Java異常處理的幾條建議
    2017-06-06
  • SpringBoot整合Scala構(gòu)建Web服務(wù)的方法

    SpringBoot整合Scala構(gòu)建Web服務(wù)的方法

    這篇文章主要介紹了SpringBoot整合Scala構(gòu)建Web服務(wù)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • java中a=a+1和a+=1的區(qū)別介紹

    java中a=a+1和a+=1的區(qū)別介紹

    這篇文章主要介紹了java中a=a+1和a+=1的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • linux下java的安裝全過程

    linux下java的安裝全過程

    在Linux系統(tǒng)下安裝Java需要先檢查是否已有Java版本,如果有則先卸載,之后可以從華為云官網(wǎng)下載Java JDK的tar包,解壓到/usr/local目錄,并配置環(huán)境變量,最后通過命令行測試Java是否安裝成功
    2024-09-09
  • Springboot 2.x集成kafka 2.2.0的示例代碼

    Springboot 2.x集成kafka 2.2.0的示例代碼

    kafka近幾年更新非???,也可以看出kafka在企業(yè)中是用的頻率越來越高。本文主要為大家介紹了Springboot 2.x集成kafka 2.2.0的示例代碼,需要的可以參考一下
    2022-04-04
  • springmvc中下載中文文件名稱為下劃線的解決方案

    springmvc中下載中文文件名稱為下劃線的解決方案

    這篇文章主要介紹了springmvc中下載中文文件名稱為下劃線的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • idea使用Mybatis逆向工程插件詳情

    idea使用Mybatis逆向工程插件詳情

    這篇文章主要介紹了idea使用Mybatis逆向工程插件詳情,首先使用mybatis連接數(shù)據(jù)庫接著添加連接的mysql的信息,測試鏈接等過程,更多過程了解請參考下面文章的詳細(xì)內(nèi)容
    2022-01-01
  • springboot整合ehcache 實現(xiàn)支付超時限制的方法

    springboot整合ehcache 實現(xiàn)支付超時限制的方法

    在線支付系統(tǒng)需要極高的穩(wěn)定性,在有限的系統(tǒng)資源下,穩(wěn)定性優(yōu)先級要高于系統(tǒng)并發(fā)以及用戶體驗,因此需要合理的控制用戶的支付請求。下面通過本文給大家介紹springboot整合ehcache 實現(xiàn)支付超時限制的方法,一起看看吧
    2018-01-01

最新評論

曲靖市| 五常市| 临潭县| 辉县市| 永善县| 宜君县| 奉贤区| 南和县| 大理市| 桑植县| 安宁市| 龙口市| 白沙| 岐山县| 广平县| 贵阳市| 南平市| 永靖县| 淮北市| 榕江县| 奉化市| 康平县| 本溪市| 鹰潭市| 和平县| 资中县| 崇仁县| 遂溪县| 金平| 绥中县| 台江县| 靖远县| 中山市| 福州市| 华阴市| 历史| 增城市| 海晏县| 信阳市| 青浦区| 托克托县|