回收器的种类:
--串行(–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()); } } }