有沒有辦法執行以下操作,而無需調用垃圾回收或增加堆大小以避免最終的GC?如何在不調用垃圾回收的情況下覆蓋ArrayList
List<Long> someList = new ArrayList<Long>();
someList.add(1l);
someList = new ArrayList<Long>(); //Will this cause GC of the old `someList`?
那麼,我問的是,如果原來的ArrayList
會被刪除(最終GCD)?如果是這樣,我該如何解決這個問題,以便我可以在沒有GCing的情況下覆蓋原始列表?
是,原來的列表將被刪除和垃圾收集。但是,這不是問題的標題。有什麼你需要知道嗎?順便說一下,爲了便於閱讀,請使用大寫字母L來表示長文字 - 「1L」不會與十一個混淆。 –
ArrayList不是不可變的。事實上,你正在修改它的第二行。 – aalku
你可以使用'list.clear()'方法清除它中的所有節點! – Rugal