2013-03-16 59 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