【JVM】JVM垃圾收集器

文章目录

  • 什么是JVM垃圾收集器
  • 四种垃圾收集器(按类型分)
    • 1.串行垃圾收集器(效率低)
    • 2.并行垃圾收集器(JDK8默认使用此垃圾回收器)
    • 3.CMS(并发)垃圾收集器(只针对老年代垃圾回收的)

什么是JVM垃圾收集器

垃圾收集器是负责执行垃圾回收的组件,它们用于管理Java程序运行时的内存分配和释放。垃圾收集器的主要任务是自动回收不再使用的内存对象,并将内存空间重新回收以供程序继续使用。

四种垃圾收集器(按类型分)

1.串行垃圾收集器(效率低)

Serial和Serial Old串行垃圾收集器,是指使用单线程进行垃圾回收,堆内存较小,适合个人电脑

  • Serial 作用于新生代,采用复制算法
  • Serial Old 作用于老年代,采用标记-整理算法

垃圾回收时,只有一个线程在工作,并且java应用中的所有线程都要暂停(STW),等待垃圾回收的完成。

【JVM】JVM垃圾收集器_第1张图片

2.并行垃圾收集器(JDK8默认使用此垃圾回收器)

Parallel New和Parallel Old是一个并行垃圾回收器,JDK8默认使用此垃圾回收器

  • Parallel New作用于新生代,采用复制算法
  • Parallel Old作用于老年代,采用标记-整理算法

垃圾回收时,多个线程在工作,并且java应用中的所有线程都要暂停(STW),等待垃圾回收的完成。(通过并行执行垃圾回收以提高性能)

相比较与串行垃圾收集器,并行垃圾收集器无非就是多开写线程来做垃圾回收,其实同样也要暂停所有正在执行的线程,只不过在多个线程并行回收效率比串行高

【JVM】JVM垃圾收集器_第2张图片

3.CMS(并发)垃圾收集器(只针对老年代垃圾回收的)

CMS全称 Concurrent Mark Sweep,是一款并发的、使用标记-清除算法的垃圾回收器,该回收器是针对老年代垃圾回收的,是一款以获取最短回收停顿时间为目标的收集器,停顿时间短用户体验就好

最大特点是在进行垃圾回收时,应用仍然能正常运行。
【JVM】JVM垃圾收集器_第3张图片

你可能感兴趣的:(JVM,面试题合集,jvm)