JVM中常用的垃圾回收器有以下几种:
1 Serial收集器:它是最古老的垃圾回收器,采用单线程进行垃圾回收,在回收过程中暂停所有的应用线程,适用于小型的应用场景。
2 Parallel收集器:它是Serial收集器的改进版,使用多线程进行垃圾回收,在回收过程中会暂停所有的应用线程,适用于多核CPU的服务器应用场景。
3 CMS收集器: 老年代并行收集器,它是一种以获取最短回收停顿时间为目标的垃圾回收器,使用多线程进行垃圾回收,在回收过程中只暂停少量的应用线程,适用于响应时间敏感的应用场景。
4 G1收集器:G1回收的范围是整个Java堆(包括新生代,老年代),使用分代收集算法进行垃圾回收,在回收过程中只暂停少量的应用线程,适用于大型的内存应用场景。
5 ZGC收集器:它是JDK11中新引入的一种垃圾回收器,以获取最短回收停顿时间为目标,可以在不超过10ms的停顿时间内进行全堆垃圾回收,适用于超大型的内存应用场景。