GC垃圾回收

GC垃圾回收

垃圾回收算法

  1. 引用计数法,弃用,原因:内存消耗,并难解决循环引用;
  2. 复制算法,主要用在新生代,从from区到to区,缺点: 内存占用大;
  3. 标记清除,遍历标记垃圾对象,然后回收垃圾,缺点: 两次遍历,且产生内存碎片;
  4. 标记压缩,遍历标记垃圾对象,然后压缩内存空间,不产生内存碎片

垃圾回收器

垃圾回收器的种类[可以比较顾客和清洁员]

  1. 串行垃圾回收 阻塞客户线程,单线程回收
  2. 并行垃圾回收,阻塞客户线程,多线程回收
  3. cms 并发标记清除,短暂阻塞客户线程,然后客户线程和回收线程并行执行

垃圾回收器的分代

  1. 用于新生代的serial串行,parallel并行,parNew
  2. 用于老年代的serialOld,cms,parallelOld
  3. 两代通吃的是G1,G1类似2048游戏一样

垃圾回收条件

  • 引用计数法,弃用
  • 可达性分析,以GCRoots对象作为起点,对象可以到达;
    GCRoot对象:
    1. 虚拟机栈引用的对象
    2. 本地方法栈引用的对象
    3. 方法区的静态属性引用
原文地址:https://www.cnblogs.com/bigdig/p/13899238.html