2009-02-12 112 views
0

如何释放内存和摧毁阵,是确定这样做就这样破坏阵列()

myarr = null 
    myarr = new Array 

是所有myArr,该旧的内容现在从内存中释放?

回答

1

假设您还没有另一个引用数组的另一个变量,那么当GC到达它时,数组内存将被恢复。

-1

myarr =无

无论如何,.Net中的垃圾收集都会对此进行排序。这就是如果你在.NET中。

+0

他使用Flex ..(GC以及) – 2009-02-12 14:38:29

1

如果没有更多的引用该数组对象,那么它由垃圾收集(GC)系统收集。所以当你问“这些旧内容是否已经从记忆中解脱出来?”,答案可能是这样的。但是您无法控制GC何时使用Actionscript虚拟机运行。

所以可以这样说,当没有更多的对象引用时,下次垃圾收集器运行时,它将被收集。

当你处理数组时,事情也变得更加复杂。数组对象可能被收集,但这并不意味着数组引用的对象也将被清除。数组引用的对象可能是对这些对象的许多引用之一,例如,可能在您的系统中存在该数组的副本,这意味着每个数组中的每个对象至少存在两个引用。

另外要注意,事件侦听器停止对象被垃圾回收,除非它们是事件侦听器