一种释放数组空间的方法

时间:2013-01-26 14:32:15

标签: java android arrays

我有一个数组int dom[][] = new int[28][3];,我移动到另一个数组。如何释放该阵列的空间?我在android模拟器上运行时遇到高cpu警告。

4 个答案:

答案 0 :(得分:4)

在Java中,您不必手动释放数组,垃圾收集器将为您清除内存。您可以将对象设置为null:dom = null

CPU警告与此没有任何关系,android模拟器在启动时有一些CPU密集型操作,因此在模拟器启动之前,处理器将处于100%的某个时间。

答案 1 :(得分:2)

将dom设置为null。以便在下一个垃圾收集器运行时释放它。

答案 2 :(得分:2)

您不必执行任何操作:如果数组因为您没有对它的引用而无法再访问,则会进行垃圾回收(将引用设置为null)没有区别。)

通常,如果这是一个局部变量,并且您没有从声明它的方法返回它,那么一旦该方法退出(即一旦数组超出范围),它就有资格获得GC

如果你“获得高cpu警告”,那么问题在于CPU,而不是内存。

答案 3 :(得分:1)

  

我在运行android模拟器时遇到高cpu警告?

它可能是任何东西。但是,我猜你已经添加了一些明确的System.gc()调用,以便稍早释放空间。

不要那样做!

虚拟机通常知道何时收集大量潜在垃圾......这是运行GC的最佳时机。而且你可以放心,当JVM决定用OOME拯救时,GC会立即运行。

如果您自己致电System.gc(),可能会导致虚拟机浪费CPU周期,但效果不大。


在大多数情况下,最佳策略是让VM根据需要安排GC。 Null'ing引用可以提供帮助,但通常是不必要的。 (坦率地说,一个28x3的整数数组占用的空间很小,可能不值得归零。)