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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jvm的新生代和老年代简介

發布時間:2023/12/10 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jvm的新生代和老年代简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

新生代分為三個區域,一個Eden區和兩個Survivor區,它們之間的比例為(8:1:1),這個比例也是可以修改的。通常情況下,對象主要分配在新生代的Eden區上,少數情況下也可能會直接分配在老年代中。Java虛擬機每次使用新生代中的Eden和其中一塊Survivor(From),在經過一次Minor GC后,將Eden和Survivor中還存活的對象一次性地復制到另一塊Survivor空間上(這里使用的復制算法進行GC),最后清理掉Eden和剛才用過的Survivor(From)空間。將此時在Survivor空間存活下來的對象的年齡設置為1,以后這些對象每在Survivor區熬過一次GC,它們的年齡就加1,當對象年齡達到某個年齡(默認值為15)時,就會把它們移到老年代中。

在新生代中進行GC時,有可能遇到另外一塊Survivor空間沒有足夠空間存放上一次新生代收集下來的存活對象,這些對象將直接通過分配擔保機制進入老年代;

1.Eden區

??? Eden區位于Java堆的年輕代,是新對象分配內存的地方,由于堆是所有線程共享的,因此在堆上分配內存需要加鎖。而Sun JDK為提升效率,會為每個新建的線程在Eden上分配一塊獨立的空間由該線程獨享,這塊空間稱為TLAB(Thread Local Allocation Buffer)。在TLAB上分配內存不需要加鎖,因此JVM在給線程中的對象分配內存時會盡量在TLAB上分配。如果對象過大或TLAB用完,則仍然在堆上進行分配。如果Eden區內存也用完了,則會進行一次Minor GC(young GC)。

?

2.Survival from to

??? Survival區與Eden區相同都在Java堆的年輕代。Survival區有兩塊,一塊稱為from區,另一塊為to區,這兩個區是相對的,在發生一次Minor GC后,from區就會和to區互換。在發生Minor GC時,Eden區和Survivalfrom區會把一些仍然存活的對象復制進Survival to區,并清除內存。Survival to區會把一些存活得足夠舊的對象移至年老代。

?

3.年老代

??? 年老代里存放的都是存活時間較久的,大小較大的對象,因此年老代使用標記整理算法。當年老代容量滿的時候,會觸發一次Major GC(full GC),回收年老代和年輕代中不再被使用的對象資源。

?

總結:

1、Minor GC是發生在新生代中的垃圾收集,采用的復制算法;

2、新生代中每次使用的空間不超過90%,主要用來存放新生的對象;

3、Minor GC每次收集后Eden區和一塊Survivor區都被清空;

4、老年代中使用Full GC,采用的標記-清除算法

?

注意:

堆=新生代+老年代,不包括永久代(方法區)。

很多人認為方法區(或者HotSpot虛擬機中的永久代)是沒有垃圾收集的,Java虛擬機規范中確實說過可以不要求虛擬機在方法區實現垃圾收集,而且在方法區進行垃圾收集的“性價比”一般比較低:在堆中,尤其是在新生代中,常規應用進行一次垃圾收集一般可以回收70%~95%的空間,而永久代的垃圾收集效率遠低于此。

永久代的垃圾收集主要回收兩部分內容:廢棄常量和無用的類。回收廢棄常量與回收Java堆中的對象非常類似。以常量池中字面量的回收為例,假如一個字符串“abc”已經進入了常量池中,但是當前系統沒有任何一個String對象是叫做“abc”的,換句話說是沒有任何String對象引用常量池中的“abc”常量,也沒有其他地方引用了這個字面量,如果在這時候發生內存回收,而且必要的話,這個“abc”常量就會被系統“請”出常量池。常量池中的其他類(接口)、方法、字段的符號引用也與此類似。

判定一個常量是否是“廢棄常量”比較簡單,而要判定一個類是否是“無用的類”的條件則相對苛刻許多。類需要同時滿足下面3個條件才能算是“無用的類”:

該類所有的實例都已經被回收,也就是Java堆中不存在該類的任何實例。

加載該類的ClassLoader已經被回收。

該類對應的java.lang.Class 對象沒有在任何地方被引用,無法在任何地方通過反射訪問該類的方法。

虛擬機可以對滿足上述3個條件的無用類進行回收,這里說的僅僅是“可以”,而不是和對象一樣,不使用了就必然會回收。是否對類進行回收,HotSpot虛擬機提供了-Xnoclassgc參數進行控制,還可以使用-verbose:class及-XX:+TraceClassLoading、 -XX:+TraceClassUnLoading查看類的加載和卸載信息。

在大量使用反射、動態代理、CGLib等bytecode框架的場景,以及動態生成JSP和OSGi這類頻繁自定義ClassLoader的場景都需要虛擬機具備類卸載的功能,以保證永久代不會溢出。

轉發:https://blog.csdn.net/iechenyb/article/details/79424974

總結

以上是生活随笔為你收集整理的jvm的新生代和老年代简介的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 午夜av免费在线观看 | 精品视频在线免费 | 成人毛片100部免费看 | 亚洲自拍色图 | 成人动漫av| 一区二区三区欧美精品 | 天天干天天噜 | 香蕉国产精品视频 | 夜间福利在线观看 | 1024欧美 | 一区二区三区三区在线 | 99久久久无码国产精品免费麻豆 | 一级片免费播放 | 中文字幕有码av | 一区二区成人在线观看 | 伊人69| 天堂视频免费在线观看 | 成年人在线免费观看视频网站 | 老色批永久免费网站www | av中文字幕免费在线观看 | 国产精品无码免费专区午夜 | 免费性网站 | 麻豆传媒在线视频 | 亚洲综合色视频 | 国产精品久久久影院 | 欧美日韩精品网站 | 精品一区二区三区久久 | 一级黄色在线视频 | 特种兵之深入敌后高清全集免费观看 | 男人用嘴添女人下身免费视频 | 在线观看特色大片免费网站 | 日韩黄色一区二区 | 日本免费一区二区视频 | 性视频在线播放 | 亚洲午夜精品在线观看 | 欧美大片免费播放器 | 大地资源中文在线观看免费版 | 蜜臀av一区二区三区激情综合 | 亚洲爱爱爱 | 日韩美女视频在线观看 | 动漫av在线免费观看 | 国产性猛交96 | 日韩国产欧美综合 | 国产日韩欧美精品一区二区 | 国产99久久久国产精品免费看 | 免费成人看视频 | 欧美女人一区二区 | 羞羞的软件 | 亚洲日本色 | 中国字幕一色哟哟 | 久久成人乱码欧美精品一区二区 | 爱爱一区| 人人干人人模 | 依人99 | 91视频毛片| 日本欧美一区二区三区不卡视频 | 一级黄色淫片 | 黄色www网站 | 国产鲁鲁 | 亚洲在线视频播放 | аⅴ资源新版在线天堂 | 中字幕视频在线永久在线观看免费 | 中文字幕精品久久久久人妻红杏ⅰ | 超碰人人干人人 | 日本午夜一级 | 男女啪啪av | 人与动物毛片 | 久久久91精品国产一区二区三区 | 99精品一区二区三区 | 相亲对象是问题学生在线观看 | 顶级尤物极品女神福利视频 | 爽好多水快深点欧美视频 | 香蕉视频官网在线观看 | 韩国美女毛片 | 亚洲成人网在线 | 国产成人精品一区二区三区网站观看 | 国产精品丝袜黑色高跟 | 亚洲国产精品久久久久久6q | 播放美国生活大片 | 日本天堂网在线观看 | 日本三级免费 | 中国一区二区视频 | 国产情侣一区二区三区 | 免费看欧美成人a片无码 | 中文字幕观看视频 | 一本大道av| 91精品国产99久久久久久红楼 | 国产永久免费 | 777黄色| 午夜免费视频网站 | 国产自偷自拍 | 日韩黄网| 欧美一级一级 | 精品一区二区免费视频 | 中文字幕人妻精品一区 | 国产黄色影视 | 一级特黄毛片 | 婷婷六月综合 | 全国最大色 |