ICo*_*mer 2 java reference arraylist lwjgl
我用LWJGL做了一个简单的"游戏",让你可以控制一个三角形(这与我的OpenGL知识的大小有关),当你按下空格键时它会拍出较小的三角形.每个射弹在创建时存储在ArrayList中:projectiles.add(new Projectile(x, y));.我可以通过循环访问这些(下面显示的代码),这是否意味着引用仍然存在?
for (int i = 0; i < projectiles.size(); i++) {
projectiles.get(i).shoot();
}
Run Code Online (Sandbox Code Playgroud)
谢谢
是的,存在对您的射弹的可达参考,因此射弹不会被垃圾收集.
当ArrayList不再相关时,您将需要从ArrayList中删除项目,否则您将慢慢"泄漏"内存.
答案是"可能".
ArrayList引用了它所拥有的元素,但......
如果您的代码具有对ArrayList的引用,那么也会引用元素(通过ArrayList引用).
如果ArrayList中不被你的代码中引用,那么元素不引用,无论是ArrayList和它的所有元素将被回收.要取消引用ArrayList及其所有元素,只需执行即可list = null;
| 归档时间: |
|
| 查看次数: |
2014 次 |
| 最近记录: |