Java垃圾回收机制-垃圾收集器(二)
上篇总结了常见的垃圾收集算法,这里回顾下常见的垃圾收集器。 image.png 上图展示了7种不同分代的垃圾收集器,如果两个收集器之间存在连线,说明他们之间可以搭配使用。虚拟机所处的区域,代表它是新生代收集器还是老年代收集器。 下面依次介绍各自收集器,没有最好的收集器,针对不同的场景选择适合自己的收集器。 Serial收集器 它是最基本、发展历史最为悠久的收集器,单线程的收集器,在执行收集时,必须暂停其它的工作线程,直到它收集结束。早些年Java卡顿的现象就是由它导致的。 image.png 两大特点: 它仅仅使用单线程进行垃圾回收 它独占式的垃圾回收 虽然串行收集器进行垃圾回收时给用户带来的体验极差,但是它简单高效,对于内存不是很大的场景一般停顿时间可以控制在很低几乎感知不到。只要不频繁发生,小小的停顿还是可以接受的。 Serial收集器对于运行在Client模式下的虚拟机来说是一个好的选择。 参数: -XX:+UseSerialGC 指定使用新生代串行收集器和老年代串行收集器。 ParNew收集器 它是Serial收集器的多线程版本,除了使用多条线程进行垃圾收集之外,其余行为包括S...