JVM 垃圾回收器

本文详细介绍了从JDK8到JDK11的默认垃圾回收器变化,包括ParallelOld、G1和ZGC。深入探讨了各种垃圾回收算法如引用计数法和可达性分析,以及不同垃圾收集器的特点,如Serial、ParNew、ParallelScavenge、SerialOld、ParallelOld、CMS和G1的工作原理。
  • JDK8默认的是Parallel Old
  • JDK9默认的是G1(Garbage First)
  • JDK11默认的是ZGC

识别垃圾的算法:

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

1、Serial

新生代垃圾收集器,采用复制算法,单线程,同时STW(Stop The World);

2、ParNew

新生代垃圾收集器,采用复制算法,是Serial的多线程版本,STW;

3、Parallel Scavenge

新生代垃圾收集器,采用复制算法,并行多线程,同时具有GC自适应的调节策略(新生代的大小、Eden与Survivor区的比例、晋升老年代对象年龄等细节参数);

4、Serial Old

是Serial的老年代版本,单线程,采用标记-整理算法,它主要有两大用途:一种用途是在JDK 1.5以及之前的版本中与Parallel Scavenge收集器搭配使用,另一种用途就是作为CMS收集器的后备预案,在并发收集发生Concurrent Mode Failure时使用。

5、Parallel Old

Parallel Old是Parallel Scavenge收集器的老年代版本,使用多线程和“标记-整理”算法。可以考虑将Parallel Scavenge和Parallel Old配合使用。

6、CMS

初始标记--> 并发标记 --> 重新标记-->并发清除

是一款标记-清除算法,收集结束时会有空间碎片产生,由于在垃圾收集阶段用户线程还需要运行,还需预留有足够的内存空间给用户线程使用,因此CMS需要预留一部分空间提供并发收集时的程序运作使用。如果CMS运行期间预留的内存无法满足程序需要,就会出现一次“Concurrent Mode Failure”失败,这时虚拟机将启动后备预案:临时启用Serial Old收集器来重新进行老年代的垃圾收集。

如果剩余内存不足,则临时启动Serial Old,如果产生大量碎片,无法分配大块内存,则触发Full GC。

7、G1

初始标记--> 并发标记--> 最终标记--> 筛选清除

堆中的内存,是逻辑上的连续,物理上的不连续,可以自动调节新生代和老年代的比例,触发回收的阈值是基于整个堆大小。

 

已经博主授权,源码转载自 https://pan.quark.cn/s/a4b39357ea24 常见问题解答 网页打开速度慢或者打不开网页? 受到多种因素的影响,对于非会员用户我们无法提供最优质的服务。 如果您希望得到最棒的体验,请至大会员页面("右上角菜单 → 大会员")根据说明操作。 请注意:受制于国际网络的诸多不确定性,我们无法对任何服务的可靠性做出任何保证。 如果出现了网络连接相关的问题,我们建议您先等待一段时间,之后再重试。 如果您在重试后发现问题仍然存在,请联系我们,并说明网络问题持续的时间。 图片下载后无法找到? 打开"右上角菜单 → 更多 → 修改下载路径",在弹出的对话框中可以看到当前图片的保存路径。 此外,由于网络因素,在保存图片之后,等待屏幕下方出现"已保存到..."后,才能在本地找到图片。 如何更改图片保存的目录? 请参见"右上角菜单 → 更多 → 修改下载路径"。 翻页不方便? 在点进某个图片后,通过在图片上向左或向右滑动,即可翻页查看下一个作品。 如何保存原图/导出动图? 长按图片/动图,在弹出的菜单中选择保存/导出即可。 输入账号密码后出现"进行人机身份验证"? 此为pixiv登陆时的验证码,请按照要求点击方框或图片。 在pxvr中注册pixiv账号后,收到验证邮件,无法访问邮件中的验证链接? 请复制邮件中的链接,打开pxvr中的"右上角菜单 → 输入地址"进行访问。 能否自动将页面内容翻译为汉语? 很抱歉,pxvr暂不提供语言翻译服务。 图片下载类型是否可以选择? 能否批量下载/批量管理下载? 已支持批量下载多图作品中的所有原图:找到一个多图作品,进入详情页面后,点击图片进入多图浏览模式,长按任意一张图片即可看到批量下载选项。 关于上述其他功能,我们...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值