如何释放内存并销毁数组,这样就可以了吗
myarr = null
myarr = new Array
myarr的所有旧内容现在都从内存中释放出来了吗?
答案 0 :(得分:1)
假设你没有在另一个变量的另一个变量中有另一个数组引用,那么当GC到达它时,数组内存将被恢复。
答案 1 :(得分:1)
如果没有对该Array对象的更多引用,则它将由垃圾收集(GC)系统收集。所以当你问“myarr的所有旧内容现在从内存中释放出来了吗?”时,答案是可能的。但是您无法控制GC何时使用Actionscript虚拟机运行。
所以说,当没有更多对象的引用时,下次垃圾收集器运行时,它将被收集。
当您处理数组时,事情变得更加复杂。可能会收集Array对象,但这并不意味着也会清除Array引用的对象。 Array引用的对象可能是对这些对象的许多引用之一,例如,系统中可能存在该Array的副本,这意味着每个Array中的每个对象至少存在两个引用。
还要注意事件侦听器会阻止对象被垃圾收集,除非它们是弱事件侦听器
答案 2 :(得分:-1)
myarr = nothing
无论如何,.Net中的垃圾收集会对此进行排序。这就是你的.NET。