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

java虛擬機jvm方法區(qū)實例講解

 更新時間:2021年02月22日 14:58:01   作者:分享牛  
在本篇文章里小編給大家整理的是一篇關(guān)于java虛擬機jvm方法區(qū)實例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。

和java堆一樣,方法區(qū)是一塊所有線程共享的內(nèi)存區(qū)域,用于保存系統(tǒng)的類信息,類的信息有哪些呢。字段、方法、常量池。方法區(qū)也有一塊內(nèi)存區(qū)域所以方法區(qū)的內(nèi)存大小,決定了系統(tǒng)可以包含多少個類,如果系統(tǒng)類太多,方法區(qū)內(nèi)存不夠肯定會導(dǎo)致方法區(qū)溢出,虛擬機同樣會拋出內(nèi)存溢出信息。(內(nèi)存溢出后面相關(guān)文章給大家總結(jié))

jdk6和jdk7中,方法區(qū)可以理解為永久區(qū)(Perm).永久區(qū)可以使用參數(shù)-XX:PermSize和-XX:MaxPermSize制定。默認情況下-XX:MaxPermSize為64MB.如果你項目中使用代理模式或者CGLIB的話可能在運行的時候生成大量的類,如果這樣,需要設(shè)置一下永久區(qū)的大小,防止永久區(qū)內(nèi)存溢出。

CGLIB會在后面專門的章節(jié)和代理模式一起講解。(這個系列專注的是JVM的講解)

使用下面代碼:

for (int i = 0; i <10000; i++) {
CglibWapper c=new CglibWapper("cn.springok.perm"+i)
}

代碼解釋:會根據(jù)傳入的參數(shù)動態(tài)生成一個類以及類的實例。因為對象實例化,類的字段、方法、常量池保存在方法區(qū),因此操作會占用一定內(nèi)存的。

大量的類可能導(dǎo)致方法區(qū)溢出,使用下面的參數(shù)運行代碼:

-XX:PermSize=10M -XX:MaxPermSize=10M -XX:PrintGCDetails

參數(shù)說明:

  • -XX:PermSize=10M 初始永久區(qū)大小10M
  • -XX:MaxPermSize 方法區(qū)最大內(nèi)存10M。
  • -XX:PrintGCDetails 打印日志詳情。

執(zhí)行程序部分輸出如下:

compacting perm gen total 86272K, used 86136K [0x44600000, 0x49a40000, 0x64600000)

the space 86272K, 99% used [0x44600000, 0x49a1e2f8, 0x49a1e400, 0x49a40000)

系統(tǒng)內(nèi)存溢出了,擴大-XX:MaxPermSize值,可以生成更多的類。

可以使用工具Visual VM觀察方法區(qū)的具體使用情況。

需要注意一點

jdk8中永久區(qū)被移除了,取而代之的是元數(shù)據(jù)區(qū),可能方法區(qū)依賴jvm的內(nèi)存吧。元數(shù)據(jù)區(qū)可以使用-XX:MaxMetaspaceSize制定,跟之前版本的-XX:MaxPermSize一樣,分配的值越多,就可以支持更多的類。不同的是元數(shù)據(jù)區(qū)是堆外直接內(nèi)存,與方法永久區(qū)不同,在不指定大小的情況下,虛擬機會耗盡所有可用的系統(tǒng)內(nèi)存。

元數(shù)據(jù)區(qū)發(fā)生溢出,虛擬機一樣拋出異常,如下:

java.lang.OutOfMemoryError Metaspace

到此這篇關(guān)于java虛擬機jvm方法區(qū)實例講解的文章就介紹到這了,更多相關(guān)java虛擬機 jvm 方法區(qū)實戰(zhàn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot使用Maven插件進行項目打包的方法

    SpringBoot使用Maven插件進行項目打包的方法

    這篇文章主要介紹了SpringBoot使用Maven插件進行項目打包的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 詳解Java如何實現(xiàn)數(shù)值校驗的算法

    詳解Java如何實現(xiàn)數(shù)值校驗的算法

    給定一個字符串如何判斷它是否為數(shù)值類型?本文將帶著大家學(xué)習(xí)一下如何利用Java實現(xiàn)這個判斷算法,感興趣的小伙伴可以學(xué)習(xí)一下
    2022-04-04
  • java開發(fā)讀取嵌套jar包中的文件

    java開發(fā)讀取嵌套jar包中的文件

    這篇文章主要為大家介紹了java開發(fā)讀取嵌套jar包中的文件方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • 基于Java實現(xiàn)圖片相似度對比的示例代碼

    基于Java實現(xiàn)圖片相似度對比的示例代碼

    很多時候我們需要將兩個圖片進行對比,確定兩個圖片的相似度。本文將利用Java和OpenCV庫實現(xiàn)圖片相似度對比,感興趣的可以動手嘗試一下
    2022-07-07
  • Java 處理超大數(shù)類型之BigInteger案例詳解

    Java 處理超大數(shù)類型之BigInteger案例詳解

    這篇文章主要介紹了Java 處理超大數(shù)類型之BigInteger案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • SpringBoot解決@Component無法注入其他Bean的問題

    SpringBoot解決@Component無法注入其他Bean的問題

    這篇文章主要介紹了SpringBoot解決@Component無法注入其他Bean的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Maven的pom.xml中resources標(biāo)簽的用法

    Maven的pom.xml中resources標(biāo)簽的用法

    本文主要介紹了Maven的pom.xml中resources標(biāo)簽的用法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Java SpringBoot整合Canal實現(xiàn)數(shù)據(jù)同步方式

    Java SpringBoot整合Canal實現(xiàn)數(shù)據(jù)同步方式

    本文介紹了如何開啟和配置Canal,以及如何在Spring Boot中集成Canal,Canal是一種基于MySQL的數(shù)據(jù)庫變更解析工具,可以將數(shù)據(jù)庫的變更事件發(fā)送到Kafka、RocketMQ等消息隊列中,用于數(shù)據(jù)分析和挖掘
    2025-02-02
  • java  多線程的三種構(gòu)建方法

    java 多線程的三種構(gòu)建方法

    這篇文章主要介紹了java 多線程的三種構(gòu)建方法的相關(guān)資料,這里提供三種實現(xiàn)方法,希望大家能夠掌握,很重要的基礎(chǔ)知識,需要的朋友可以參考下
    2017-09-09
  • Java刷題之最小k個數(shù)的思路及具體實現(xiàn)

    Java刷題之最小k個數(shù)的思路及具體實現(xiàn)

    這篇文章主要介紹了Java刷題之最小k個數(shù)的思路及具體實現(xiàn),最小K個數(shù)是一個經(jīng)典的top-K問題,可以通過整體排序、建立小根堆或大根堆的方式解決,排序方式時間復(fù)雜度較高,適合數(shù)據(jù)量小的場景,小根堆適合k較小的情況,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-10-10

最新評論

喀什市| 仁寿县| 新丰县| 高州市| 正定县| 东丽区| 苏尼特左旗| 广汉市| 普兰县| 临江市| 红桥区| 鲁甸县| 冷水江市| 纳雍县| 射阳县| 东山县| 确山县| 五莲县| 易门县| 祁门县| 大港区| 如皋市| 右玉县| 年辖:市辖区| 龙江县| 山东省| 满城县| 罗山县| 阿拉善左旗| 连云港市| 江源县| 永兴县| 乌恰县| 呼图壁县| 台北县| 阜新市| 岢岚县| 海安县| 金湖县| 财经| 察雅县|