我有一個很長的代碼。但邏輯如下: 我有一個Java中的二維數組。所以,我的值位於內部位置:[0][0], [0][1], [0][2]
和值:[1][0], [1][1], [1][2]
。在這一點上,我做了一些比較,我從第一行開始。我想釋放內存:[0][0], [0][1], [0][2]
並移至下一個位置[2][0], [2][1], [2][2]
。如何在二維陣列中釋放內存
我該怎麼做這樣的事情。我無法覆蓋[0][0], [0][1], [0][2]
,我的代碼已經編程爲移動到下一行,即[2][0], [2][1], [2][2]
,但我遇到了內存限制,我想從第一行釋放內存,因爲我不再需要它了。我只需要當前行和前一行進行比較。所以,我想在完成比較時刪除第一行。
更新: 我試圖分配NULL
到未使用陣列的位置,如下所示:
for (int f = 0; f <= capacity; f++)
{
table[f][i-2] = (Integer) null;
}
我的數組是int類型的,我只需要在最後兩列。一旦我再向前移動一個位置,就不需要第一個。當我應用上述代碼分配NULL
,我得到:
java.lang.NullPointerException
只需編寫一些代碼並與他人分享問題! –
像我們在c中做的那樣,釋放記憶是不可能的。將值分配給null有助於gc公佈該值已準備好釋放。 * System.gc()*告訴gc做一些乾淨的工作,但是當gc開始工作的時候是不知道的。 –
粘貼它太長和不便,因爲它背後的邏輯也相當複雜,會使事情不清楚。最好只關注這個小問題。 – user2192774