2015-11-19 75 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

当然,对象将被垃圾收集,因为引用被取消。所以对象很好被收集......