国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > java基础 > gc在java中原理分析

gc在java中原理分析

java gc原理

头像

小妮浅浅

2021-02-07 17:31:443522浏览 · 0收藏 · 0评论

本教程操作环境:windows7系统、java10版,DELL G3电脑。

1.GC堆内存

Java将堆内存分为3大部分:新生代、老年代和持久代,其中新生代又进一步划分为Eden、S0、S1(Survivor)三个区

我们在程序中new出来的对象一般情况下都会在新生代里的Eden区里面分配空间,如果存活时间足够长将会进入Survivor区,进而如果存活时间再长,还会被提升分配到老年代里面。持久代里面存放的是Class类元数据、方法描述等。

1Minor GC(年轻代GC):

对象优先在Eden中分配,当Eden中没有足够空间时,虚拟机将发生一次Minor GC,因为Java大多数对象都是朝生夕灭,所以Minor GC非常频繁,而且速度也很快。

2Full GC(老年代GC):

Full GC是指发生在老年代的GC,当老年代没有足够的空间时即发生Full GC,发生Full GC一般都会有一次Minor GC。

3)持久代(Permanent generation)也称之为 方法区(Method area):

用于保存类常量以及字符串常量。注意,这个区域不是用于存储那些从老年代存活下来的对象,这个区域也可能发生GC。发生在这个区域的GC事件也被算为 Major GC 。

2.GC执行条件

eden区空间不够存放新对象的时候,执行Minro GC。升到老年代的对象大于老年代剩余空间的时候执行Full GC,或者小于的时候被HandlePromotionFailure 参数强制Full GC 。调优主要是减少 Full GC 的触发次数,可以通过 NewRatio 控制新生代转老年代的比例,通过MaxTenuringThreshold 设置对象进入老年代的年龄阀值

3.GC算法原理

HotSpot 虚拟机采用了可达性分析来进行内存回收,可达性分析的基本思路就是通过一系列可以做为root的对象作为起始点,从这些节点开始向下搜索。当一个对象到root节点没有任何引用链接时,则证明此对象是可以被回收的。以下对象会被认为是root对象:

  • 栈内存中引用的对象

  • 方法区中静态引用和常量引用指向的对象

  • 被启动类(bootstrap加载器)加载的类和创建的对象

  • Native方法中JNI引用的对象。

以上就是gc在java中原理分析,相信经过本篇的学习理解,已经对基础的名词概念有所掌握。对于一些GC算法还不会使用的,可以再学完本篇文章后,回顾之前所学的知识内容。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

疯狂做爰XXXX高潮潮后感染 | 男按摩师吸乳房会得乳腺瘟吗 | 《女教师的味道3》在线观看| 暴躁少女BGM在线观看| 蜜汁| 妈妈的新男友| 《初尝禁果》2:做爰HD| 《办公室高潮秘书2》| 开会也一直放里面老板的小说| 蜜源APP| 高压监狱4伦理HD| 大雷QQ弹弹跳舞| 《浴室吃奶2》无删减| 爸爸汆肉的日常| 女生把QQ放在一起的头像| 为啥女的舒服了要摸自己的胸| 妈妈叫我戴上避孕套英文| 电影《满足2》完整版在线观看| 戴上自安小玩具调到10档| 母与子免费观看大全电视剧| 榴莲APP官网下载1.0.3| 苍老师在线观看免费播放电视剧 | 经典韩剧电影| 精产一二三产区划分标准图片| 《哺乳》电影完整版观看| 《巨大荫蒂》免费| 妈妈がだけの心に漂う| 爸爸吃女儿奶奶高情商回复| 扒开女人内裤猛进猛出流出白液| 一家乱战1-13集大| 免费双男主做酱酱酿酿的动漫| 中文在线字幕观看电视剧| 《教室里的激情》2| BOBO浏览器| 东北娘们国语版免费播放| 120分钟做爰A片免费| 在线观看| 国产在线观看免费全集电视剧网站| 《性房纵欲》在线观看| 瑜伽馆里的私密按摩效果怎么样| 成品PPT的网站免费