当前位置:   article > 正文

对象加载JVM到GC清除的全过程分析

对象加载JVM到GC清除的全过程分析

1、首先会把字节码文件内容加载到方法区。

2、然后再根据类信息再堆区进行对象的创建。

3、对象首先会分配在堆区中的年轻代的Eden区,经过一次Minor GC 后,对象如果存活,则会进入Suvivor区。在后续的每次Minor GC 中,如果对象一直存活,就会在Suvivor区来回拷贝,每移动一次,年龄会加1。

4、当年龄超过15时,对象依然存活,对象就会进入老年代。

5、如果经过Full GC,被标记为垃圾对象,那么就会被GC线程清理掉。

另外,确定一个对象是不是垃圾,会通过两个方法进行。

1、引用计算法,通过这种方式是给堆内存当中的每个对象记录一个引用个数,引用个数为0的就默认是垃圾。这是早期JDK中使用的方式,应用计数法无法解决循环引用的问题。

2、可达性算法,这种方式工作在内存中,从根对象向下一级一直查找引用,找到的对象就不是垃圾,没有扎到的对象就是垃圾了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/936938
推荐阅读
相关标签
  

闽ICP备14008679号