收集算法未内存回收的方法论,则垃圾回收则为内存回收的具体实现。主流的垃圾收集器为 Serial,ParNew,Parrallel Scavenge, CMS,Serial OLd, Parrel Old, G1.算法
虚拟机运行在client模式下默认的新生代收集器多线程
是多线程的Serial收集器并发
运行在Server模式下的首选的新生代收集器线程
PS:两个词 并行 并发blog
不一样于其余垃圾收集器,ParrallelNew的目标达到一个可控制的吞吐量(运行用户代码时间/(运行用户代码时间+GC消耗时间)),停顿时间越短就越适合须要与用户交互的程序,而搞吞吐量则能够高效率的利用CPU时间,适合在后台运算二不须要太多交互的任务。内存
Serial收集器的老年代版本,单线程标记整理算法,在client模式下的虚拟机使用。资源
ParrellScavenge的老年代版本,使用多线程和标记整理算法。虚拟机
以获取最短回收停顿时间为目标的收集器。io
G1以前的 收集器 收集范围为整个新生代或者老年代,G1则是 将整个JAVA堆划分为多个大小相等的区域,虽然还保留新生代和老年代的概念,可是新生代和老年代再也不是物理隔离,而是一部分region的集合。可预测停顿是 创建在其有计划的进行全区域的垃圾收集,G1跟踪各个区域内的垃圾堆积的价值大小,在后台维护一个有限列表,每次根据容许的手机时间,手机回收价值最大的区域。效率