日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 永久代_Java新生代、老生代和永久代详解

發布時間:2023/12/10 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 永久代_Java新生代、老生代和永久代详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言: 還是面試經常被q,小結一下

image.png

JVM中的堆一般分為三部分,新生代、老年代和永久代。

1 新生代

主要是用來存放新生的對象。一般占據堆空間的1/3,由于頻繁創建對象,所以新生代會頻繁觸發MinorGC進行垃圾回收。

新生代分為Eden區、ServivorFrom、ServivorTo三個區。

Eden區:Java新對象的出生地(如果新創建的對象占用內存很大則直接分配給老年代)。當Eden區內存不夠的時候就會觸發一次MinorGc,對新生代區進行一次垃圾回收。

ServivorTo:保留了一次MinorGc過程中的幸存者。

ServivorFrom: 上一次GC的幸存者,作為這一次GC的被掃描者。

當JVM無法為新建對象分配內存空間的時候(Eden區滿的時候),JVM觸發MinorGc。因此新生代空間占用越低,MinorGc越頻繁。

MinorGC采用復制算法。

2 老年代

老年代的對象比較穩定,所以MajorGC不會頻繁執行。

觸發MinorGC的條件:

1 在進行MajorGC之前,一般都先進行了一次MinorGC,使得有新生代的對象進入老年代,當老年代空間不足時就會觸發MajorGC。

2 當無法找到足夠大的連續空間分配給新創建的較大對象時,也會觸發MajorGC進行垃圾回收騰出空間。

MajorGC采用標記—清除算法(或者標記—整理算法)

MajorGC的耗時比較長,因為要先整體掃描再回收,MajorGC會產生內存碎片。為了減少內存損耗,一般需要合并或者標記出來方便下次直接分配。

當老年代也滿了裝不下的時候,就會拋出OOM。

永久代

指內存的永久保存區域,主要存放Class和Meta(元數據)的信息。

Class在被加載的時候元數據信息會放入永久區域,但是GC不會在主程序運行的時候清除永久代的信息。所以這也導致永久代的信息會隨著類加載的增多而膨脹,最終導致OOM。

注意: 在Java8中,永久代已經被移除,被一個稱為“元數據區”(元空間)的區域所取代。

元空間的本質和永久代類似,都是對JVM規范中方法區的實現。不過元空間與永久代之間最大的區別在于:元空間并不在虛擬機中,而是使用本地內存。因此默認情況下元空間的大小僅僅受本地內存的大小限制。類的元數據放入 native memory, 字符串池和類的靜態變量放入java堆中。 這樣可以加載多少類的元數據就不再由MaxPermSize控制, 而由系統的實際可用空間來控制。

MajorGC和FullGC的區別(這里參考1建議不要糾結這兩個概念的區別,而是應該專注于解決問題)

Full GC 是清理整個堆空間—包括年輕代和老年代。

Major GC 是清理老年代。

MinorGC 觸發機制

1 Eden區滿的時候,JVM會觸發MinorGC。

MajorGC 觸發機制

1 在進行MajorGC之前,一般都先進行了一次MinorGC,使得有新生代的對象進入老年代,當老年代空間不足時就會觸發MajorGC。

2 當無法找到足夠大的連續空間分配給新創建的較大對象時(如大數組),也會觸發MajorGC進行垃圾回收騰出空間。

Full GC觸發機制:

1 調用System.gc時,系統建議執行Full GC,但是不必然執行

2 老年代空間不足

3 方法區空間不足

4 通過Minor GC后進入老年代的平均大小大于老年代的可用內存

5 由Eden區、survivor space1(From Space)區向survivor space2(To Space)區復制時,

4 當永久代滿時也會引發Full GC,會導致Class、Method元信息的卸載。

虛擬機給每個對象定義了一個對象年齡(Age)計數器。如果對象在 Eden 出生并經過第一次 Minor GC 后仍然存活,并且能被 Survivor 容納的話,將被移動到 Survivor 空間中,并將對象年齡設為 1。對象在 Survivor 區中每熬過一次 Minor GC,年齡就增加 1 歲,  當它的年齡增加到一定程度(默認為 15 歲)時,就會被晉升到老年代中。對象晉升老年代的年齡閾值,可以通過參數 -XX:MaxTenuringThreshold (閾值)來設置。

總結

以上是生活随笔為你收集整理的java 永久代_Java新生代、老生代和永久代详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 四虎精品在线观看 | 国产在线一二三 | 奇米精品一区二区三区在线观看 | 夜夜撸影院 | 国产妇女乱一性一交 | 无码人妻精品一区二区蜜桃网站 | 在线观看黄网址 | 成年人在线观看网站 | av制服丝袜 | 伊人久久大香线蕉 | 黄色三级生活片 | 无套内谢大学处破女www小说 | 午夜寂寞视频 | 午夜dv内射一区二区 | 欧美大片91 | 91中文在线观看 | 欧美三级视频网站 | 久久久久9| 黄在线观看免费 | 性综艺节目av在线播放 | 中文字幕在线一区二区三区 | 成人免费a视频 | 精品人妻无码一区二区色欲产成人 | 水蜜桃av在线 | 深夜视频在线观看免费 | 香蕉小视频 | 国产日韩第一页 | 色偷偷影院 | 国产免费内射又粗又爽密桃视频 | 亚洲午夜激情视频 | 男女黄色片 | 美女试爆场恐怖电影在线观看 | 久久久久亚洲无码 | 欧美一级夜夜爽 | www.av88| 91免费视频网址 | 国产伦精品一区二区三区精品 | 中文国产 | 亚洲色图视频在线观看 | 四虎国产成人永久精品免费 | 日本青青草视频 | 成人免费视频网站在线看 | 人人干狠狠干 | 日本久久久久久久久久久 | 黄频在线看 | 午夜日韩视频 | 激情福利在线 | 中文字幕一区二区三区在线视频 | 综合激情网 | 欧美一区二区三区不卡视频 | 公交顶臀绿裙妇女配视频 | 亚洲成熟少妇视频在线观看 | 91国产丝袜播放在线 | 五十路熟母 | jizz免费 | 午夜婷婷丁香 | 日韩欧美在线精品 | 国产精品一级黄片 | 久久久久亚洲av无码专区桃色 | 久久亚洲综合国产精品99麻豆精品福利 | 国产精品电影一区二区 | 无码一区二区波多野结衣播放搜索 | 免费在线观看黄网站 | 小罗莉极品一线天在线 | 女人18岁毛片 | 美女扣逼喷水视频 | 少妇脚交调教玩男人的视频 | 午夜影院毛片 | 成人a视频在线观看 | 香蕉久久夜色精品国产使用方法 | 亚洲精品无码一区二区 | 亚洲高清不卡 | 欧美深性狂猛ⅹxxx深喉 | 国产伦精品一区二区三区高清 | 成全世界免费高清观看 | 不卡网av| 玖玖爱在线观看 | 176精品免费 | 亚洲av女人18毛片水真多 | 亚洲熟妇无码乱子av电影 | 亚洲一二三区在线 | 久久大尺度 | 天天射天天搞 | 激情四射网 | 光棍影院av| av作品在线 | 自拍偷拍欧美日韩 | 韩日av在线播放 | 国产日韩欧美一区二区东京热 | 国产美女黄网站 | 国产一区二区不卡在线 | 黄色在线免费观看视频 | 国产老熟女伦老熟妇露脸 | 成年人毛片视频 | 宅宅少妇无码 | 精品一区二区欧美 | 免费在线激情视频 | 26uuu精品一区二区在线观看 | 任我爽在线 |