java - 垃圾收集最小化。有人会澄清一些关于迭代器的事情吗?

标签 java android garbage-collection iterator

我是一名 Android 菜鸟。我对这个声明有疑问:

Avoid using iterators as they create new objects.

迭代器到底是什么?我以为是这样的:

    int a = 1;
    while (a < 100)
        System.out.println(a);
        a += 1;  //iterator

这里的关键是垃圾收集。这是一个问题吗,因为每次循环循环时,都会在内存中创建 a 的新实例?否则我想不出有什么办法可以做这样的事情。也许为“a”创建一个包含“a”的对象,并具有 add(int Something) 方法和 getA() 方法。

否则我该怎么做(如果可能的话)?我错过了什么吗?

最佳答案

1) 不,那不是迭代器。这就是迭代。 Iterator是Java/Android API中的接口(interface)

2) int 是原始类型,而不是 Object 类型,因此它将分配在堆栈上而不是堆上。一旦方法调用完成,堆栈就会消失。

3) 即使您在循环内使用引用变量在循环内创建新对象,该引用也将被限定为循环。一旦循环完成,引用就会消失,对象将有资格进行 GC。

关于java - 垃圾收集最小化。有人会澄清一些关于迭代器的事情吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17540189/

相关文章:

java - Android 中的 XML 架构验证

java - Collections.sort(list) 和 list.sort(Comparator) 的区别

java - 导入mongoDB jar驱动时Gradle错误

c# - .NET GC 停止桌面应用程序 - 性能问题

java - 使用 ExecutorService 时正确管理内存

java - 当按下 ListView 之外的按钮时,如何获取 ListView 中所有元素的值

java - 在 Java/Eclipse 中,为什么在我的代码中设置断点会改变该语句的效果?

java - "android-support-v4"多个库冲突

java - Firebase Android 通过子键获取值

android - 通用Android垃圾回收