java中各種垃圾收集器的原理
1,Serial New/Serial Old(序列)
Serial New/Serial Old收集器是最基本最古老的收集器,它是一個單執行緒的收集器,並且它進行垃圾收集器時,必須暫停所用使用者執行緒,Serial New收集器時針對新生代的收集器,採用的是Copying演算法,Serial Old收集器是針對老年代的收集器,採用的是Mark-Compact演算法,它的優點是實現簡單,但是缺點是會給使用者帶來停頓。
2,Parrallel New (並行)
收集器是Serial收集器的多執行緒版本
3,Parrallel Scavenge
Parrallel Scavenge收集器是一個新生代的多執行緒收集器(並行收集器),它在回收期間不需要暫停其他使用者執行緒,其採用的Copying演算法,該收集器與前兩個演算法不同,它主要是為了達到一個可控的吞吐量
4,Parrallel Old
Parralle Old是Parrallel Scavenge的老年代版本,使用的多執行緒和Mark-Compact(標記整理)演算法
5,CMS
CMS收集器是一個以獲得最短回收停頓時間為目標的收集器,它是一種併發收集器,採用的是Mark-sweep演算法。
6,G1
G1收集器時當今收集器技術最前沿的成果,它是一款面向伺服器端的應用收集器,它能充分利用多核CPU、多核環境,因此它是一款並行與併發收集器,並且可建立可預測的停頓時間模型,整體上是基於標記清理,區域性採用複製
三個最基本的java垃圾回收演算法
1)複製演算法:兩個區域A和B,初始物件在A,繼續存活的物件移動到B,此為新生代經常用的演算法
2)標記清理:一塊矛,標記要回收的物件,然後回收,一定會出現碎片,那麼就出現了
3)標記-整理演算法:多了碎片整理,整理出更大的記憶體來存放物件
綜上:新生代基本用複製演算法,老年代基本用標記清理、CMS採用標記清理
相關文章
- java幾種垃圾收集方法和垃圾收集器Java
- HotSpot的7種垃圾收集器組合HotSpot
- Java G1 垃圾收集器Java
- 垃圾車在生活中的重要性,各種垃圾車的功能
- Java中各種Log的使用Java
- 深入理解JVM,7種垃圾收集器JVM
- Java新的Z垃圾收集器ZGC介紹JavaGC
- java8預設使用的垃圾收集器Java
- 垃圾收集器
- Java中的各種關鍵字Java
- Java虛擬機器04——垃圾收集器Java虛擬機
- 《深入理解java虛擬機器》筆記3——7種垃圾收集器Java虛擬機筆記
- JVM記憶體區域以及各區域的記憶體溢位異常,記憶體分代策略,垃圾收集演算法,各種垃圾收集器JVM記憶體溢位演算法
- 8分鐘搞懂Java中的各種鎖Java
- java中的Static、final、Static final各種用法Java
- 垃圾收集器學習
- JVM垃圾收集器(八)JVM
- 理解Java記憶體區域與垃圾收集器Java記憶體
- Java虛擬機器詳解(四)------垃圾收集器Java虛擬機
- 一張圖提示如何選擇Java垃圾收集器?Java
- 深入理解java虛擬機器之垃圾收集器Java虛擬機
- JVM垃圾收集器總結JVM
- JVM垃圾收集器專題JVM
- JVM 經典垃圾收集器JVM
- 垃圾收集器與記憶體分配策略_hotspot垃圾收集演算法實現和垃圾收集器記憶體HotSpot演算法
- Java 各種鎖的小結Java
- GC 分代回收 - 垃圾收集器GC
- 13.G1垃圾收集器
- JVM(五)-垃圾收集器入門JVM
- 深入理解JVM(③)各種垃圾收集演算法JVM演算法
- JDK 15中Z垃圾收集器演算法 - JesúsNavarreteJDK演算法
- 強制Java垃圾收集的5種方法Java
- Java獲取Spring的各種物件JavaSpring物件
- 【Java學習筆記】垃圾收集器和記憶體分配策略Java筆記記憶體
- Java Z 垃圾收集器如何徹底改變記憶體管理Java記憶體
- 編寫你的第一個垃圾收集器
- Java各種規則引擎Java
- JVM調優:HotSpot JVM垃圾收集器JVMHotSpot
- 深入理解 JVM 之 垃圾收集器JVM