java - 是否在列表上运行 remove(int index) 方法以删除对象实例调用垃圾收集?

标签 java android object arraylist garbage-collection

我正在 Android 上编写一个应用程序 - 其中一部分涉及屏幕上的一些敌人。这些都包含在一个 ArrayList 中。 我的代码确定 Enemy 类的实例是否在屏幕之外。如果是这样,则它需要删除对象的实例以保留资源,因为这些资源可以以相当高的速率产生。我目前调用

remove(int index) 

从列表中删除元素的方法。这也会对元素进行垃圾收集吗?如果没有,我如何确保垃圾收集(或者不值得?)

最佳答案

If so, it then needs to delete the instance of the object to preserve resources as these can be spawned at a fairly high rate

更有可能的是,它需要维护一个 object pool这些对象,如果“可以以相当高的速率生成这些对象”,则可以“保存资源”。

Will this also engage garbage collection on the elements?

没有。垃圾收集通常是异步执行的。一旦您不再有对某个对象的引用,它将有资格进行垃圾回收,但删除引用不会导致垃圾回收。

If not, how can I ensure garbage collection

你不知道。

关于java - 是否在列表上运行 remove(int index) 方法以删除对象实例调用垃圾收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31722942/

相关文章:

java - 廉价串口设备的推荐

Java 文件在 eclipse 中运行,但在命令行上运行

android - findViewById() 什么时候返回 null?

python - 可以设置Python对象的任何属性

actionscript-3 - 如何从子 Slider 动画片段访问父对象中定义的对象

java - 在 Eclipse 中编辑库

java - hibernate xml配置似乎不起作用

java - HttpResponse response = client.execute(httpGet),httpresponse后面的代码没有运行

java - 在 sqlite 数据库中搜索字符串的任意组合

java - 创建一个与另一个与原始对象有关系的对象有什么含义?