AS3.0 对象键和内存管理
如果將 myObject 用作 Dictionary 對(duì)象中的鍵,則會(huì)創(chuàng)建對(duì)原始對(duì)象的另一個(gè)引用。例如,下面的代碼創(chuàng)建兩個(gè)對(duì)象引用
(myObject 變量和 myMap 對(duì)象中的鍵):
import flash.utils.Dictionary;
var myObject:Object = new Object();
var myMap:Dictionary = new Dictionary();
myMap[myObject] = "foo";
若要使 myObject 引用的對(duì)象能夠進(jìn)行垃圾回收,您必須刪除對(duì)它的所有引用。在此情況下,必須更改 myObject 的值并從
myMap 中刪除 myObject 鍵,如以下代碼所示:
myObject = null;
delete myMap[myObject];
或者,可以使用 Dictionary 構(gòu)造函數(shù)的 useWeakReference 參數(shù),以使所有字典鍵均成為“ 弱引用”。垃圾回收系統(tǒng)忽略弱引
用,也就是說只具有弱引用的對(duì)象可以進(jìn)行垃圾回收。例如,在下面的代碼中,您不需要從 myMap 中刪除 myObject 鍵就可以
使該對(duì)象能夠進(jìn)行垃圾回收:
import flash.utils.Dictionary;
var myObject:Object = new Object();
var myMap:Dictionary = new Dictionary(true);
myMap[myObject] = "foo";
myObject = null; // Make object eligible for garbage collection.
轉(zhuǎn)載于:https://www.cnblogs.com/sdlwlxf/archive/2012/12/28/2821137.html
總結(jié)
以上是生活随笔為你收集整理的AS3.0 对象键和内存管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: KVM安装Win系列虚拟机学习笔记
- 下一篇: Portal-Basic Java We