2013-03-16 55 views
1

我写了一个程序,用于对整数类型数组进行排序,该程序涉及创建另一个相同大小的数组。排序后,没有使用新的阵列,所以我想完全摆脱它。到目前为止,我只找到有关删除特定类型元素的问题。一些帮助?删除整个数组

信息(如果需要):
原始数组:A[n]
新阵列:B[n]
B[n]已被完全删除。

+0

和哪里是java代码? – Sajmon 2013-03-16 11:03:18

回答

5

无论何时您离开执行排序的方法(假设temp数组是在方法内创建的),temp数组将被“删除”(或更准确地说,占用的内存将符合垃圾回收的条件) 。

Java中几乎没有任何明确的内存释放需要。

3

数组是Java中的引用类型。你可以让一个数组引用null如果不再想使用它:

arr = null; 
0

如果阵列中的排序方法,那么它将被安排在垃圾收集本地定义,当你的方法结束一样会有不现有的参考资料。

如果它是一个类或实例变量,则将所有对它的引用设置为null

在Java中,您不必担心内存释放。没有像C的stdlib free(void*)或C++的delete[]运算符这样的东西。你只有garbage collector

1

将B设置为null。 B = null;

这样垃圾收集器会在运行时清理它。虽然无法控制垃圾收集何时发生,因为每个JVM都有自己的垃圾收集算法,您可以建议系统应该运行垃圾收集器来释放一些内存。

您可以通过使用 System.gc();注意:如上所述,System.gc();其中,System.gc()和System.gc()是相同的。只会建议垃圾回收,但不能保证。

1

通常,gc()释放没有引用的内存。但是您也可以使用array = null释放内存。

+1

只需添加更多,'array = null'将确保数组已准备好进行垃圾回收......但不知道GC何时运行。 – agpt 2015-04-21 05:08:03