韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > 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算法还不会使用的,可以再学完本篇文章后,回顾之前所学的知识内容。

关注

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

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

《帐篷里的秘密》动漫| 局长把校花在床呻吟| 淫语....粗话....脏话小说| 欧美大妈LOGO大全及价格图| 《好好疼爱里面》免费看| 把腿开大点我添添你SB| 《办公室高潮秘书2》电影| 成人做爰100部片| 吨叔| 妈妈がだけの母さん歌词| 《訾花交换做爰》| 东北娘们国语版免费播放| 情满四合院| 丰年经继拇中文3的主要角色分析| 高三妈妈用性缓解孩子压力| 刚长毛的初一女生年龄范围| 玛莉娜1984| 《初试云雨情》法国| 人马杂配MV的视频在哪里看| 屁股翘起来跪在床上有好处吗| 桥本有菜| 爱动漫| 公翁挺进苏玥的小洑视频| 被两个老头又日又添| 国外成品网站1688入口在哪| 老旺的大肉蟒进进出出| 内衣走秀| 白日梦我电视剧免费观看完整版 | 西游记| 成品人和精品人的区别在哪里知乎| 无码欧XXXXX在线观看免费| 17.C1起草视频| 小静被门卫大爷灌满JNG液视....| 泰剧《缠绕的夜晚》免费观看| 高H文| 俩个人做AJ的视频教程大全| 精品无码人妻一区二区免费AV| 妈妈你真棒插曲MV| 人犬兽人在线观看免费完整版| 私处按摩SPA养生精油 | 成色18K1835MB