- Serial收集器是最基本、历史最悠久的垃圾收集器。JDK1.3之前回收新生代的唯一选择。(2000年5月发布)
- Serial收集器作为HotSpot中client模式下默认的新生代垃圾收集器。
- Serial收集器采用复制算法、串行回收和”Stop-The-World“机制的方式执行内存回收。
- 除了年轻代外,Serial收集器还提供用于执行老年代垃圾收集的Serial Old收集器。Serial Old收集器同样也采用了串行回收和”Stop-The-World“的机制,只不过内存回收算法是标记-压缩算法。
~~Serial Old是运行在Client模式下默认的老年代的垃圾收集器。
~~Serial Old在Server模式下主要有两个用途:1、与新生代的Parallel Scavenge配合使用。2、作为老年代的CMS收集器的的后备垃圾收集方案。
Serial收集器是一个单线程的收集器,但这个单线程更值得我们注意的是,它在进行垃圾回收线城时,必须暂停其他工作线程,直到它收集结束(Stop The World)。
- 优势:简单而高效(与其他收集器的单线程比高效),对于限定单个CPU的环境来说,Serial收集器由于没有线程的相互开销,专心做垃圾回收,自然就获得了最高的单线程收集策略。
运行在client模式下的虚拟机是个不错的选择。
-
在用户的桌面应用场景中,可用内存一般不大(几十MB至一两百MB),可以在较短时间内完成垃圾收集(几十ms至一百多ms),只要不频繁发生,使用串行收集器是可以接受的。
-
在HotSpot虚拟机中,使用-XX:+UseSerialGC参数可以指定年轻代和老年代都使用串行收集器。就是新生代用Serial GC,且老年代用Serial Old GC。
总结:
这个垃圾收集器了解就可以,现在已经不用串行的了。而且限定单核CPU才可以用。现在都不是单核的了。一般在java web应用程序中是不会采用串行垃圾收集器的。