1、

工作原理:设置引用数,使用引用计数器在引用关系发生改变时修改引用数字,当引用数字为0的时候立即回收

优点:

  1. 发现垃圾时立即回收(可以即时回收垃圾对象)
  2. 最大限度减少程序暂停(减少程序卡顿时间)

缺点:

  1. 无法回收循环引用的对象
  2. 时间开销大(资源消耗较大)

2、

  1. 遍历所有对象找标记活动对象
  2. 执行整理,移动对象位置
  3. 回收相应空间

3、

  1. 回收过程采用复制算法+标记整理
  2. 新生代内存区分为两个等大小空间
  3. 使用空间为From,空闲空间为To
  4. 活动对象存储于From空间
  5. 标记整理后将活动对象拷贝至To
  6. From与To交换空间完成释放

4、

何时使用:回收老生代对象时使用

工作原理:遍历对象进行标记,找到第一层的可达对象后停下让程序继续执行一会,程序执行一会之后继续让GC机制继续做二步的标记操作,同理往后继续让标记和代码执行交替进行,最后在标记完成过后进行垃圾回收