日韩性视频-久久久蜜桃-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| 中文av在线播放 | 日韩另类视频 | 亚洲激情视频在线观看 | 三级a做爰全过程 | 日韩一区二区三区精品 | 色悠久久综合 | a级一片| 日本熟妇色xxxxx日本免费看 | 国产精品一区二区自拍 | 久久在线视频免费观看 | 久久久久久国产精品免费免费 | 黄色国产一级片 | 亚洲精品久久久久久一区二区 | 六十路息与子猛烈交尾 | 色日韩 | 久久久久久久黄色片 | 免费看日韩av| 欧美不卡高清 | 你懂的在线观看网址 | 亚洲精品在线观看视频 | 日韩一区二区三区视频在线 | 国产极品粉嫩 | 亚洲高清在线一区 | 久久久久区 | 国产xxx在线 | 99精品视频在线观看 | 一区av在线| 亚洲欧美一区二区激情 | 女生下面流水视频 | 黄色av在| 樱桃视频一区二区三区 | 日韩欧美在线观看一区 | 久久免费精彩视频 | 在线播放国产一区 | 日韩精品一区二区三区在线播放 | 亚洲综合一二三区 | 欧美操操操 | 大又大粗又爽又黄少妇毛片 | 在线视频午夜 | 美女四肢被绑在床扒衣 | 精品影片一区二区入口 | 3d动漫精品啪啪一区二区免费 | 91蝌蚪网 | 偷操 | av免费观看网址 | 岛国一区二区三区 | 日本一级吃奶淫片免费 | 成人午夜天 | 国产一区二区三区视频在线观看 | 伊人久久大香线蕉综合网站 | 午夜在线观看视频18 | 日韩高清久久 | 久久午夜夜伦鲁鲁一区二区 | 国产精品成人免费精品自在线观看 | 中文字幕在线观看你懂的 | 最新国产露脸在线观看 | 欧美老熟妇又粗又大 | 中文国语毛片高清视频 | 丁香婷婷网 | 综合色婷婷一区二区亚洲欧美国产 | 五月天校园春色 | 在线免费黄| 欧美大片aaa | 欧美草逼网| 国产精品一二三四五 | 二区不卡 | 久草最新视频 | 日韩少妇高潮抽搐 | 台湾佬美性中文娱乐网 | 亚洲欧美日韩国产精品 | 国产精品视频a | 娇妻被肉到高潮流白浆 | 国产精品久久久久久久久毛片 | 成人网在线 | 在线免费av观看 | 日本高清黄色 | 亚洲国产中文字幕在线观看 | 色综合国产 | www一级片 | www,色 | 免费精品无码AV片在线观看黄 | 青青草久 | av福利在线播放 | 久久精品国产99国产 | 在线观看免费国产视频 | 国产精品无码专区 | 99999视频| 蜜芽在线视频 | 亚洲 自拍 另类 欧美 丝袜 | 亚洲精品久久久久久久蜜桃臀 | 色窝窝无码一区二区三区成人网站 | 少妇全黄性生交片 | 亚洲我射 | 亚洲高清网站 | 欧美贵妇videos办公室 | 污视频在线免费观看 | 男人肌肌桶女人肌肌 | 日韩经典中文字幕 |