回收器的種類:java
--串行(–XX:+UseSerialGC )算法
Out ofBox算法,年輕代串行復制,年老代串行標記整理,主要用於桌面應用併發
--並行(–XX:+UseParallelGC )jvm
年輕代暫停應用程序,多個垃圾收集線程並行的複製收集,年老代暫停應用程序,與串行收集器同樣,單垃圾收集線程標記整理。JDK6.0啓用該算法後,默認啓用了-XX:+UseParallelOldGC,性能大爲提升性能
--併發(Concurrent Low Pause Collector)(–XX:+UseConcMarkSweepGC )spa
啓用該參數,默認啓用了-XX:+UseParNewGC;簡單的說,併發是指用戶線程與垃圾收集線程併發,程序在繼續運行,而垃圾收集程序運行於其餘CPU上。
線程
如何查看jvm使用的是哪一種回收器:code
方法一:blog
java -XX:+PrintFlagsFinal -version | grep :get
方法二:
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()); } } }