在创建游戏并且想要从ArrayList中的屏幕删除某些东西时,让我们说一个子弹,使用arrayList.remove(index)
从游戏中删除它是否可行?或者这样做是否还在耗尽内存?
如果这不是首选方法,请指出正确的方向:)
答案 0 :(得分:4)
答案是可能的。从ArrayList
删除子弹将消除对它的引用。如果没有其他引用,那么子弹对象最终将被GC。
当然,屏幕必须在没有子弹的情况下重绘,这是一个大致独立的问题。
答案 1 :(得分:3)
如果从ArrayList删除对象,和那对象 没有任何其他参考,那么它将'符合条件' 对于垃圾收集器。
之后,您不必担心将其从堆中删除:JVM会通过自动垃圾收集器来实现。
对于您提出的问题;
或者这样做时是否还在耗尽内存?
答案是; 是,它仍会占用内存,除非 JVM调用垃圾收集并释放内存。
希望有所帮助。