2009-02-12 391 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虛擬機運行。

所以可以這樣說,當沒有更多的對象引用時,下次垃圾收集器運行時,它將被收集。

當你處理數組時,事情也變得更加複雜。數組對象可能被收集,但這並不意味着數組引用的對象也將被清除。數組引用的對象可能是對這些對象的許多引用之一,例如,可能在您的系統中存在該數組的副本,這意味着每個數組中的每個對象至少存在兩個引用。

另外要注意,事件偵聽器停止對象被垃圾回收,除非它們是事件偵聽器