根据这个SO回答,jconsole可以输出类似
Garbage collector: Name = 'PS MarkSweep', Collections = 324, Total time spent = 12 minutes
Garbage collector: Name = 'PS Scavenge', Collections = 1,132, Total time spent = 1 minute
的信息,上面是老生代,下面是新生代。
不过看起来jconsole是图形界面,如果需要命令行的话,jmap可以用来输出某个java进程所使用的GC,类似输出如下:
using parallel threads in the new generation.
using thread-local object allocation.
Concurrent Mark-Sweep GC
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
...
根据这里提到的Conc Mark&Sweep,再查表,可以知道新生代使用的是ParNew GC,老生代使用的是ConcurrentMarkSweep GC。
事实上从表中可以得知新生代和老生代的组合其实是固定的那么几种,而且是双射的,所以只要知道其中一种就能查表得出另外一种。