java垃圾回收的回收器

时间:2022-12-27 23:10:32

回收器的种类:

--串行(–XX:+UseSerialGC )

    Out ofBox算法,年轻代串行复制,年老代串行标记整理,主要用于桌面应用

 

  --并行(–XX:+UseParallelGC )

    年轻代暂停应用程序,多个垃圾收集线程并行的复制收集,年老代暂停应用程序,与串行收集器一样,单垃圾收集线程标记整理。JDK6.0启用该算法后,默认启用了-XX:+UseParallelOldGC,性能大为提高

 

  --并发(Concurrent Low Pause Collector)(–XX:+UseConcMarkSweepGC )

    启用该参数,默认启用了-XX:+UseParNewGC;简单的说,并发是指用户线程与垃圾收集线程并发,程序在继续运行,而垃圾收集程序运行于其他CPU上。

如何查看jvm使用的是哪种回收器:

方法一:

java -XX:+PrintFlagsFinal -version | grep :

方法二:

java -XX:+PrintCommandLineFlags -version

方发三:

import java.lang.management.GarbageCollectorMXBean;
import java.lang.management.ManagementFactory;
import java.util.List;
 
public class x {
    public static void main(String args[]) {
        List<GarbageCollectorMXBean> l = ManagementFactory.getGarbageCollectorMXBeans();
        for(GarbageCollectorMXBean b : l) {
            System.out.println(b.getName());
        }
    }
}