一、内存管理
1) 内存:由可读写单元组成,表示一片可操作空间
2) 管理:人为的去操作一片空间的申请,使用和释放
3) 内存管理:开发者主动申请空间,使用空间,释放空间
4) 管理流程:申请————使用————释放
二、垃圾回收与常见 GC 算法
1、JavaScript中的垃圾回收
1) JavaScript 中的内存管理是自动的
2) 对象不再被引用时是垃圾
3) 对象不能从根上访问到时是垃圾
JavaScript的可达对象:我们可以访问到的对象就是可达对象(引用、作用域链)
————可达的标准就是从根上触发是否能够被找到
JavaScript中的根可以理解为是全局变量对象
2、GC的定义与作用
1) GC就是垃圾回收机制的简写
2) GC可以找到内存中的垃圾、并释放和回收空间
程序中不再需要使用的对象、程序中不能再访问到的对象
3) 算法就是工作时查找和回收所遵循的规则
(引用计数、标记清除、标记整理、分代回收)
3、 引用计数算法:
核心思想:设置引用数,判断当前引用数是否为0
引用计数器
引用关系改变时修改引用数字
引用数字为0时立即回收
优点 发现垃圾时立即回收,最大限度减少程序暂停
缺点 无法回收