Serial回收器
1.Serial收集器是最基本、历史最悠久的垃圾收集器了。JDK1.3之前是新生代的唯一选择。
2.Serial收集器作为HotSpot中Client模式下的默认新生代垃圾收集器。
3.Serial收集器采用了复制算法、串行回收和“Stop-The-World"机制的方式执行内存回收。
4.除了年轻代之外,Serial收集器还提供用于执行老年代垃圾收集的Serial Old收集器。Serial Old收集器同样采用了串行回收和“Stop-The-World"机制,只不过内存回收算法使用的是标记-压缩算法。(Serial Old是运行在Client模式下默认的老年代的垃圾回收器。Serial Old在Server模式下主要有两个用途:1.与新生代的Parallel Scavenge配合使用 。2.作为老年代CMS收集器的后备垃圾收集方案。)
Serial回收器的工作过程
如下图所示:
这个收集器是一个单线程的收集器,但它的”单线程“的意义并不仅仅说明它只会使用一个CPU或一条收集线程去完成垃圾收集工作,更重要的是它进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束。
优势:
1.简单而高效
2.在用户的桌面应用场景中,可用内存一般不大,可以在较短时间内完成垃圾收集,只要不频繁发生,使用串行回收器是可以接受的。
3.在HotSpot虚拟机中,使用-XX:+UseSerialGC参数可以指定年轻代和老年代都使用串行收集器。
总结:
这种垃圾收集器仅做了解,目前已经不再用串行的了。而且在限定单核CPU才可以用。现在都不是单核了。对于交互较强的应用而言,这种垃圾收集器是不能被接受的。一般在Java web应用程序中是不会采用串行垃圾收集器的。