面試題之JDK8默認垃圾回收器是什麼

java -XX:+PrintCommandLineFlags -version

-XX:InitialHeapSize=266390080 -XX:MaxHeapSize=4262241280 -XX:+PrintCommandLineFlags 
-XX:+UseCompressedClassPointers -XX:+UseCompressedOops 
-XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

UseParallelGC = Parallel Scavenge + Parallel Old,再查看詳細信息

java -XX:+PrintGCDetails -version

java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
Heap
 	PSYoungGen      total 76288K, used 2621K [0x000000076b500000, 0x0000000770a00000, 0x00000007c0000000)
  					eden space 65536K, 4% used [0x000000076b500000,0x000000076b78f748,0x000000076f500000)
  					from space 10752K, 0% used [0x000000076ff80000,0x000000076ff80000,0x0000000770a00000)
  					to   space 10752K, 0% used [0x000000076f500000,0x000000076f500000,0x000000076ff80000)
	ParOldGen       total 175104K, used 0K [0x00000006c1e00000, 0x00000006cc900000, 0x000000076b500000)
  					object space 175104K, 0% used [0x00000006c1e00000,0x00000006c1e00000,0x00000006cc900000)
 	Metaspace       used 2291K, capacity 4480K, committed 4480K, reserved 1056768K
  					class space    used 254K, capacity 384K, committed 384K, reserved 1048576K

附上此圖: 

JVM內存管理:深入垃圾收集器與內存分配策略

這裏寫圖片描述 

所以,jdk8環境下,默認使用 Parallel Scavenge(新生代)+ Serial Old(老年代)

-XX:+PrintCommandLineFlags 參數可查看默認設置收集器類型
-XX:+PrintGCDetails亦可通過打印的GC日誌的新生代、老年代名稱判斷

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章