浅谈Java垃圾回收(GC)

1、回收算法:(1)引用计数法;(2)可达性分析法。

 

2、垃圾回收算法:(1)标记-清除算法;(2)复制算法;(3)标记-整理算法。

 

3、垃圾收集器:

  (1)、Serial 收集器:新生代、复制算法、单线程;

  (2)、ParNew 收集器:新生代、复制算法、多线程;

  (3)、Parallel 收集器:新生代、复制算法、关注吞吐量(吞吐量=运行用户代码时间/(运行用户代码时间+垃圾收集时间));

  (4)、Serial Old 收集器:老年代、标记-整理算法、单线程;

  (5)、Parallel Old 收集器:老年代、标记-整理算法、吞吐量;

  (6)、CMS 收集器:老年代、标记-清除算法、以获取最短回收停顿时间为目标;

  (7)、G1 收集器:Java堆分为多个大小相等的独立区域(Region);G1收集器跟踪各个Region里面的垃圾堆积的价值大小,在后台维护一个优先列表,每次根据允许的收集时间,优先回收价值最大的Region(这也是Garbage-First名称的由来)。

 

4、触发GC的时机:

  (1)、当年轻代或者老年代满了,Java虚拟机无法再为新的对象分配内存空间了,那么Java虚拟机就会触发一次GC去回收掉那些已经不会再被使用到的对象;

  (2)、手动调用System.gc()方法,通常这样会触发一次的Full GC以及至少一次的Minor GC;

  (3)、程序运行的时候有一条低优先级的GC线程,它是一条守护线程,当这条线程处于运行状态的时候,自然就触发了一次GC了。

 

转载于:https://www.cnblogs.com/stupid-chan/p/10003568.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值