2015-11-19 71 views
0

我有下面的代碼片段:Android的垃圾收集對象

ArrayList<GameObject> gameObjectList = new ArrayList<GameObject>(); 

public void init(){ 
    for(int i=0; i<10; i++) { 
     loadedOjectList.add(new GameObject()); 
    } 
} 

現在說我要離開這個活動也許加載在我的遊戲一個新的水平。編寫loadedObjectList.clear()是否足以使10個對象有資格進行垃圾回收?我有類似的東西,每當我通過關卡進展時,我的遊戲就會開始放慢速度,因爲我猜測對象仍然存在。有任何想法嗎?

+0

理論上它應該記住容量不會改變,從而使後備陣列的大小保持不變。如果需要,GC也會啓動。 – GiantTree

+0

ArrayList被清除之後,如果我第二次調用init(),那麼add()方法會將對象放在索引0到9還是將索引10放到19? –

+0

大小將被報告爲0,並且所有新對象將從索引開始的0開始添加。只是沒有刪除支持數組,只是爲空。 – GiantTree

回答

1

當然,對象將被垃圾收集,因爲引用被取消。所以對象很好被收集......