2

我编写了一个用于对整数类型数组进行排序的程序,该程序涉及创建另一个相同大小的数组。排序后,新数组没有用,所以想彻底去掉。到目前为止,我只发现了与删除特定类型元素有关的问题。一些帮助?

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

4

6 回答 6

7

每当您离开执行排序的方法时,临时数组将被自动“删除”(或者更准确地说,占用的内存将有资格进行垃圾回收)(当然假设临时数组是在方法内部创建的)。

Java.

于 2013-03-16T11:03:25.967 回答
4

数组是 Java 中的一种引用类型。null如果您不想再使用它,可以进行数组引用:

arr = null;
于 2013-03-16T11:04:23.447 回答
1

将 B 设置为空。B =空;

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

您可以使用 System.gc();

注意:如上所述,System.gc(); 只会建议进行垃圾收集,但不能保证。

于 2014-09-15T19:48:27.003 回答
1

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

于 2015-04-21T04:58:17.733 回答
0

如果数组是在您的排序方法中本地定义的,那么当您的方法结束时,它将被安排进行垃圾收集,因为没有对它的现有引用。

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

在 Java 中,您不必担心内存释放。没有像 C 的 stdlibfree(void*)或 C++ 的delete[]运算符这样的东西。你只是垃圾收集器

于 2013-03-16T11:06:15.517 回答
0

将 B 设置为空数组

B = [];
于 2018-10-08T01:48:01.013 回答