首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Dictionary对象弱摘引的一点探讨

2012-12-19 
Dictionary对象弱引用的一点探讨1.首先我写了两个测试类:?package test01{import flash.events.MouseEvent

Dictionary对象弱引用的一点探讨

1.首先我写了两个测试类:

?

package test01{        import flash.events.MouseEvent;        import flash.utils.Dictionary;        import flash.display.Sprite;        /**         * @author           */        public class MultiMovieClipTest extends Sprite        {                private var _dict : Dictionary;                var _wy:WangYong;                public function MultiMovieClipTest()                {                        initData();                        this.stage.addEventListener(MouseEvent.CLICK, click);                }                private function click(event : MouseEvent) : void                {                        trace("===>",_wy);                }                private function initData() : void                {                        _dict = new Dictionary(false);                        for (var i : int = 0; i < 10; i++) {                                if(i == 0){                                        _wy = new WangYong();                                        _dict[_wy] = new WangYong();                                }else{                                        _dict[new WangYong()] = new WangYong();                                }                        }                 }        }}

?

?

package test01{        /**         * @author          */        public class WangYong        {        }}

?

?

接着通过概要分析来开始观察WangYong这个实例的数量变化;

2.第一种观察(如代码中的:new Dictionary(false));
此时观察的结果如下:

Dictionary对象弱摘引的一点探讨

?

?

第二种观察(_dict = new Dictionary(true););
此时观察的结果如下:

Dictionary对象弱摘引的一点探讨

?

然后不停的点击强制垃圾回收的按钮,一会后结果又如下:

Dictionary对象弱摘引的一点探讨

?

3.总结:
我就直接把API文档拷过来了:
指示?Dictionary?对象在对象上使用“弱”引用。 如果对某个对象的唯一引用位于指定的?Dictionary?对象中,则符合垃圾回收的条件,并且在回收对象时会被从表中删除。所以在使用时还是要当心的。。Dictionary对象弱摘引的一点探讨

ps:1.如果在使用_dict = new Dictionary(true),同时没有定义成员变量var _wy:WangYong;,那么输出的结果实例数就会是0个了。
2.如果Dictionary的key是基本类型数据,那么也不会自动回收。

热点排行