如何判断垃圾对象
引用计数法:根据对象的引用数量判断,当一个对象引用数量为0就是拦击对象
可达性分析:从GCROOTS搜索,走过的路径叫引用链,当一个对象没有任何引用链就是垃圾对象。

GCROOTS
GCROOTS包括虚拟机栈、本地方法栈引用的对象,方法区类的常量、静态变量引用的对象

对象什么情况下会进入老年代
大对象直接进入老年代
超过空间分配担保:老年代连续空间大于新生代对象总大小或者大于历次晋升到老年代的平均大小,那么MinorGC否则MajorGC
GC年龄判断,年龄超过MaxTenuringThreshold晋升动态年龄判断 TargetSurvivorRatio默认是50%,年龄从小到大相加,当对象超过survivor的TargetSurvivorRatio数值,那么从该年龄往上的对象都要晋升。

垃圾回收算法
复制算法:适用于存活对象较少的情况下,一次扫描,没有碎片效率高,空间浪费,移动对象,需要调整对象引用
标记清除:存活对象较多的情况下效率比较高,扫描两次,效率低,产生碎片
标记压缩:不会产生碎片,扫描两次,需要移动对象,调整对象引用

image.png
image.png
image.png
image.png
image.png
垃圾回收器组合
image.png


一只鱼
49 声望1 粉丝

« 上一篇
运行时数据区
下一篇 »
垃圾回收器

引用和评论

0 条评论