前端理论总结(js)——js垃圾回收机制 // 堆和栈的区别

两种方式:

引用计数

1:先声明一个变量,并将一个引用类型的值赋给该变量,那么这个引用类型的引用次数为1,计数为1
2:如果同一个引用类型的值又赋给其他变量,那么这个引用类型的值被引用的次数就会加一,引用次数为2,计数2,并以此类推
3:如果被该引用类型的值赋值的变量,被赋值了其他的引用类型的值,那么该类型的值的引用次数就需要减一
4:当该引用类型的值的引用次数为0,就说明没有变量被该引用类型的值赋值,所以就没有办法访问到这个引用类型的值
5:周期一到,垃圾收集器就会释放掉引用次数计数为0的引用类型的值所占的内存

标记清除

1:垃圾回收器,标记所有根变量
2:标记环境中的变量的引用
3:标记所有引用链上的对象,所有被访问的对象都被标记和记住,方便以后不再访问同一个对象多次
4:垃圾回收器完成内存清除工作,销毁那些未带标记的值并回收他们所占用的内存空间


堆和栈的区别

一个优先列表(优先级可以按照大小来规定)

程序员手动分配

存储:引用数据类型的数据

先进后出

系统进行分配

存储:基础数据类型和引用数据类型的地址

ヾ( ̄▽ ̄)Bye~Bye~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值