jvm的垃圾回收器以及触发full gc的场景

JVM(Java虚拟机)的垃圾回收器有很多种,主要包括以下几种:

  1. Serial收集器:串行收集器是最古老、最稳定的收集器。它使用单个线程进行垃圾收集工作,在进行垃圾回收时会暂停所有用户线程。

  2. ParNew收集器:ParNew是Serial收集器的多线程版本,也被称为“并行年轻代收集器”,可以与CMS收集器配合使用。

  3. Parallel收集器:Parallel收集器是一种多线程并行的垃圾收集器,用于新生代和老年代的回收。

  4. CMS收集器:CMS(Concurrent Mark-Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器,主要用于老年代的垃圾回收。

  5. G1收集器:G1(Garbage-First)收集器是一种面向服务端应用的垃圾收集器,逐步取代CMS收集器,具有更可控的停顿时间和高效的并发能力。

除了上述列出的垃圾回收器之外,还有其他一些实验性质或特定用途的收集器,如ZGC(Z Garbage Collector)和Shenandoah等。不同的垃圾回收器适用于不同的场景和需求,开发人员可以根据应用的特点选择合适的垃圾回收器来优化性能。

Full GC(Full Garbage Collection)是Java中一种对整个堆内存进行清理和整理的操作,它会停止应用程序的所有线程,包括Young Generation和Old Generation的内存区域都会被扫描和回收。Full GC通常发生在以下几种情况下:

  1. 当Eden区满了,并且触发Minor GC后,存活对象无法全部晋升到Survivor区时,会将剩余的对象直接放入老年代,如果老年代空间不足以容纳这些对象,就会触发Full GC。

  2. 在Old Generation中进行大对象分配时,如果无法找到足够的连续空间来分配该大对象,也会触发Full GC。

  3. 永久代(在JDK 8之前)或元空间(在JDK 8及更高版本)内存不足时,可能会触发Full GC。

  4. 显式调用System.gc()方法,通知虚拟机执行Full GC。

  5. CMS(Concurrent Mark-Sweep)垃圾收集器在并发标记阶段出现"Concurrent Mode Failure"时,会导致一次Full GC。

需要注意的是,Full GC的频繁发生会影响系统的性能,因此在实际开发中需要合理设置堆内存大小、优化程序设计以尽量减少Full GC的发生。

-----------想要java、大数据、人工智能 资料的+v-----------

在这里插入图片描述


相关推荐

  1. JVM各种垃圾回收(GC)

    2024-03-17 13:36:04       22 阅读
  2. JVMJVM垃圾回收机制与垃圾回收选择

    2024-03-17 13:36:04       14 阅读
  3. jvm垃圾回收

    2024-03-17 13:36:04       43 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-17 13:36:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-17 13:36:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-17 13:36:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-17 13:36:04       20 阅读

热门阅读

  1. ClickHouse副本节点数据损坏恢复

    2024-03-17 13:36:04       23 阅读
  2. Clickhouse MergeTree原理(二)—— 表和分区的维护

    2024-03-17 13:36:04       18 阅读
  3. Centos设置docker自启动,以及容器程序自启动

    2024-03-17 13:36:04       21 阅读
  4. Python:递归函数

    2024-03-17 13:36:04       22 阅读
  5. html导航栏+下拉菜单+表单验证

    2024-03-17 13:36:04       23 阅读
  6. HTML

    HTML

    2024-03-17 13:36:04      20 阅读
  7. 在CentOS 7系统下通过二进制方式安装MySQL 8.0.34

    2024-03-17 13:36:04       20 阅读
  8. Jtti:如何在CentOS中安装和配置Tomcat应用服务器

    2024-03-17 13:36:04       21 阅读
  9. NIO学习笔记

    2024-03-17 13:36:04       19 阅读
  10. dp动态规划的基本

    2024-03-17 13:36:04       23 阅读