JVM - 垃圾收集

一、可达性分析算法

以GC Roots对象作为起点向下搜索,通过判断对象的引用链是否可达,来判定对象是否存活。

GC Roots对象:

1)虚拟机栈(栈帧中的本地变量表)中引用的对象。

2)方法区中类静态属性引用的对象。

3)方法区中常量引用的对象。

4)Native方法引用的对象。

二、对象引用

1)强引用

2)软引用 SoftReference

3)弱引用 WeakReference

4)虚引用 PhantomReference

三、方法区回收

永久代垃圾回收主要内容有:废弃常量、无用的类。

常量池中的字面量如果没有任何String对象引用,当发生内存回收且必要时,将会被清理。

无用的类判断条件:

1)该类所有的实例都已经被回收

2)加载该类的ClassLoader已经被回收

3)该类的java.lang.Class对象没有在任何地方被引用,无法在任何地方通过反射访问该类的方法

-Xnoclassgc参数控制JVM是否对类进行回收

四、垃圾收集算法

1)标记-清除算法

2)复制算法

新生代采用复制算法进行回收,HotSpot默认Eden空间和Survivor空间比例是8 :1。

3)标记-整理算法

老年代采用标记-整理算法进行回收。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值