# 什么是垃圾?

运行的程序中,没有任何指针指向的对象,就是垃圾

# 两种回收方式

# 引用计数法

一个对象被引用一次计数器就+1,解除引用就-1

好处:计数值减为0了,直接主动释放,效率更高

坏处:循环引用的问题不好处理,例如A引用B,B引用C,C引用D,D引用B,此时A不再引用B,那么B、C、D就应该算为垃圾,但是实际上B、C、D的引用计数值并不为0,无法被回收,占用内存

# GCRoot算法

从根引用开始追溯,递归查找

好处:有效的解决循环引用的我呢提

坏处:耗时久一些