你了解java垃圾回收器吗?列举几个
  • Serial GC,新生代,最古老的垃圾收集器。Serial体现在收集工作是单线程的,并且在进行垃圾收集过程中,会进入臭名昭著的"Stop the world"。当然其单线程设计也意味着精简的GC实现,无需维护复杂的数据结构,初始化也简单。
  • ParNew GC 新生代GC实现。它实际上是Serial GC的多线程版本。最常见的应用场景是配合老年代的CMS GC工作
  • Parrallel GC。新生代收集器、也是使用复制算法、也是并行的多线程收集器。与ParNew GC的区别在于Parrallel GC目标在于得到一个可控制的吞吐量,也称为吞吐量优先
  • CMS(Concurrent Mark Sweep) GC,基于标记-清除(Mark Sweep)算法。设计目标是尽量减少停顿时间。这对于Web等反应时间敏感的应用非常重要。但是CMS算法采用的标记-清除(Mark Sweep)算法,存在着内存碎片化问题,难以避免长时间使用的情况下出现full GC,导致恶劣的停顿。另外既然强调了并发(Concurrent),CMS会占用更多CPU资源,并和用户线程争抢
  • G1 GC。这是一种兼顾吞吐量和停顿时间的GC实现,G1可以直观的设定停顿时间的目标。相比于CMS GC,G1未必能做到CMS在最好情况下的延时停顿,但是最差情况要好很多。G1 GC中仍然存在年代的概念,但是内存结构类似于棋盘的region。region之间是复制算法。但整体上可以看做为标记-整理(Mark-Compact)算法,有效避免内存碎片

[Java基础]-- Java GC 垃圾回收器的分类和优缺点

Java GC系列(3):垃圾回收器种类

JVM调优——之CMS GC日志分析

详解 JVM Garbage First(G1) 垃圾收集器


更多精选文章
标签: gc、cms、g1、停顿、垃圾
一个创业中的苦逼程序员
笔试题


刷题


简历模板


AI算法


大数据


内推


推荐阅读:
阿里巴巴笔试面试大全
腾讯笔试面试大全
百度笔试面试大全
今日头条笔试面试大全
网易笔试面试大全
Google笔试面试大全
更多笔试面试大全
隐藏