概念
发生时间:程序休闲的时间
弱引用: WeakMap WeakSet
垃圾回收区域: 堆空间
如何识别垃圾
方法一 引用计数法
堆中的每个对象都有一个引用计数器,当一个对象被创造初始化并赋值后,该变量计数就赋值为1
当每一个地方引用它时,就加1. 当引用失效的时候就减1.当对象的的计数为0,就失去引用即当初垃圾
优点
1.引用计数器执行简单,实用方便,无延迟
缺点
1.无法处理循环引用的问题
方法二 根搜索算法(Tracing Colletor)
通过GC Roots(根集)的对象作为起点,遍历寻找对应的引用节点,找到这些节点后继续递归往下查找节点 ,搜索所找的路径被称为引用链,当一个对象到GC Roots没有引用链相连,证明该对象不可用
具体参考大佬的文章