Java技术点速记 | 垃圾收集与内存分配

简述一下JAVA中JVM使用的常见垃圾收集方法和技术。

垃圾标记方法

  1. 引用计数
  2. 可达性分析

垃圾收集方法

  1. 标记-清除
    标记对象后统一回收,存在回收效率和内存碎片的问题。
  2. 标记-复制
    将存活对象统一移动到另一部分内存空间里去,问题是内存可用率降低。
  3. 标记-整理
    移动存活对象向空间的某一端然后释放边界外空间,问题是计算负担较大。

垃圾收集器

  1. Serial :早期新生代垃圾收集器,简单高效内存消耗小但是存在停顿时间长的问题。
  2. ParNew :Serial收集器的多线程版本
  3. Parallel Scavenge : 基于标记-清除的多线程新生代收集器。相比于ParNew增加了吞吐量控制(即保证垃圾收集时间与用户代码执行时间等于某个比例)。
  4. Parallel Old :Parallel Scavenge的老年代版本,基于标记-整理。
  5. CMS :通过初始标记、并发标记、重新标记、并发清除四个步骤降低停顿时间,其中并发标记和并发清除不需要停顿用户线程,重新标记是用来修正并发标记期间多线程导致的标记对象变动。
  6. G1(Garabge First) : 将java堆划分成多个大小相等的Region,通过优先级列表以实现最高效回收。相比CMS,G1更接近“标记-整理”算法。
  7. Shenandoah :支持并发标记、并发回收、并发引用更新,具有比G1更好的性能。
  8. ZGC :使用染色体指针(Colored Pointer)极大降低了停顿时间,但也因此导致ZGC管理的内存不能超过4TB,但由于其出色的性能使得ZGC是未来的首选收集器之一。

我的微信链接 ,欢迎关注交流 JVM技术点速记 | 垃圾收集与内存分配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丧心病狂の程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值