【006】【JVM——垃圾收集器总结】
JVM ——垃圾收集器总结 垃圾收集器概览 收集算法是内存回收的方法论,垃圾收集据是内存回收的具体实现。 Java 虚拟机规范中对垃圾收集器应该如何实现没有规定,不同的厂商、不同版本的虚拟机所提供的垃圾收集器可能会有很大差别,一般都会提供参数供用户根据自己的所用特点和要求组合出各个年代所使用的收集器。下面是基于 JDK 1.7 Update 14 之后的 HotSpot 虚拟机垃圾收集器。如果两个收集器之间有连线就说明它们可以搭配使用。 直到现在还没有最好的收集器,更加设有万能的收集器,只是对具体应用选择最合适的收集器。 垃圾收集器概览图如下: Serial 收集器 Serial 收集器是最基本、历史最悠久的收集器,它是一个单线程的收集器,即它只会使用一个 CPU 或一条收集线程去完成垃圾收集工作,而且在进行垃圾收集时, 必须暂停其他所有的工作钱程,直到它收集结束,虽然它有很大缺点,但依然是虚拟机运行在 Client 模式下的默认新生代收集器。它也有着优于其他收集器的地方: 简单而高效。 Serial 收集器没有线程交互的开销, 专心做垃圾收集,可以获得很高的单线程收集效率。 运行示意图如下: ParNew 收集器 ParNew 收集器其实就是 Serial 收集器的多线程版本,除了使用多条线程进行垃圾收集之外,其余行为包括 Serial 收集器可用的所有控制参数、、收集算法