AS3弱引用强引用

             

         最近看了FlexLite,看到内存素材唯一,自动销毁的时候有些兴奋;然后就去看了作者思想,是用了Dictionary的弱引用;然后就晕了,不知道啥是弱引用。。。。然后就是百度google...看了很多,还是不明白。。。最后在dom的指点下才有点明白,在此记录下。 

          Flash Player的garbage collection(GC)分两种运行方式,一种是“引用计数法”(Reference Counting),一种是“标记-清除法”(Mark Sweeping)。

          引用计数法是通过计算指向某个对象的引用的数量来确定是否清除该对象。如果一个对象的引用数量为0,表示程序无法再访问到该对象,则清除该对象;如果引用计数不为0,则不清除。这里的引用就是强引用。简单说:就是没有引用的时候,gc就会回收强引用对象。然而,弱引用是什么概念呢,它拥有和强引用一样的功能,通过它能找到你想要的对象;区别是:gc认为它是不存在的;什么意思呢,就是一个对象如果只有弱引用,那么gc是可以直接把它收了;那我们用弱引用不就是没用么,gc随时把它消灭了,没啥作用(我刚开始就是纠结这个事情的。。。。不知道你是这样么),实际应用中是这样的,一个对象开始的时候一定有一个强引用(new 的时候),我们的弱引用一般是用来缓存的对象的,为了缓存的对象能被gc收掉,才用的弱引用;就是这样,一个对象同时有强引用和弱引用,当第二次使用的时候我们之间从弱引用缓存池里面取值,这样就做到了我们加载的素材的唯一(内存里面)。

          我说明白了么。。。。艾玛。。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值