Java虛擬機(jī)(JVM)中常見的垃圾回收器有以下幾種:
1.Serial垃圾回收器:是最古老的垃圾回收器,它使用單線程來進(jìn)行垃圾回收,在進(jìn)行垃圾回收時(shí)會(huì)暫停應(yīng)用程序的所有線程。
2.Parallel垃圾回收器:是Serial垃圾回收器的并行版本,使用多個(gè)線程來進(jìn)行垃圾回收,可以顯著提高垃圾回收效率,但在進(jìn)行垃圾回收時(shí)也會(huì)暫停應(yīng)用程序的所有線程。
3.CMS(Concurrent Mark Sweep)垃圾回收器:是一種并發(fā)的垃圾回收器,可以在不暫停應(yīng)用程序的情況下進(jìn)行垃圾回收。CMS垃圾回收器主要針對(duì)的是響應(yīng)時(shí)間敏感的應(yīng)用程序。
4.G1(Garbage First)垃圾回收器:是一種基于區(qū)域的垃圾回收器,可以同時(shí)處理堆中的多個(gè)區(qū)域。G1垃圾回收器可以根據(jù)應(yīng)用程序的實(shí)時(shí)情況動(dòng)態(tài)調(diào)整垃圾回收策略,以最大限度地提高垃圾回收效率。
5.ZGC(Z Garbage Collector)垃圾回收器:是一種可擴(kuò)展的低延遲垃圾回收器,可以在幾毫秒內(nèi)處理數(shù)百兆或數(shù)千兆堆大小的垃圾回收。ZGC垃圾回收器采用了柔性實(shí)時(shí)策略,可以有效避免長(zhǎng)時(shí)間的停頓。它是Java 11中新增的一種垃圾回收器。