自学内容网 自学内容网

Java垃圾回收3

分代回收

分代收集算法

回收机制

1.新创建的对象,都会先分配到eden区

2.当伊甸园内存不足,标记eden区与 from区(现阶段没有)的存活对象

将存活对象(假设这里只有A存活)采用复制算法复制到 to 中,复制完毕后,eden和 from 内存都得到释放

3.经过一段时间后伊甸园的内存又出现不足,标记eden区域和to区存活的对象(假设这里A和1都存活), 将存活的对象复制到from区

4.循环往复,每次eden满了以后就标记eden和from/to区域存活对象,将存活对象复制到to/from区。每次清理完,就只有from/to中的一个区域可能有存活对象!

直到:当幸存区(from和to)对象熬过几次回收(最多15次),晋升到老年代(幸存区内存不足或大对象会导致提前晋升)

        这里A就是移动次数超过15次,而被放入老年区的对象,因为可以看作很长一段时间都会使用该对象,所以放入老年区。(也有可能是A占用内存过大,或者幸存者区内存不足而移到老年区)

MinorGC、 Mixed GC 、 FullGC的区别是什么

MinorGC【young GC】发生在新生代的垃圾回收,暂停时间短(STW)

Mixed GC 新生代 + 老年代部分区域的垃圾回收,G1 收集器特有

FullGC: 新生代 + 老年代完整垃圾回收,暂停时间长(STW),应尽力避免。一般发生在新生代和老年代内存严重不足时。

名词解释: STW(Stop-The-World):暂停所有应用程序线程,等待垃圾回收的完成

小结


原文地址:https://blog.csdn.net/qq_64064246/article/details/137912525

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!