收集算法未內存回收的方法論,則垃圾回收則爲內存回收的具體實現。主流的垃圾收集器爲 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跟蹤各個區域內的垃圾堆積的價值大小,在後臺維護一個有限列表,每次根據容許的手機時間,手機回收價值最大的區域。效率