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