我是一个Android菜鸟。我对这个陈述有困难:
避免在创建新对象时使用迭代器。
迭代器究竟是什么?我以为是这样的:
int a = 1;
while (a < 100)
System.out.println(a);
a += 1; //iterator
这里的关键是垃圾收集。这是一个问题,因为每次循环循环时,会在内存中创建一个新的a实例吗?我想不出办法做这样的事情。也许为“a”创建一个对象,该对象包含“a”并具有add(int something)方法和getA()方法。
如果可能,我该怎么做?我错过了什么吗?
答案 0 :(得分:3)
1)不,那不是Iterator
。那就是迭代。 Iterator是Java / Android API中的接口
2)int
是原始类型,而不是Object
类型,因此它将在堆栈上分配而不是堆。方法调用完成后,堆栈就会启动。
3)即使您在循环内部使用引用变量创建新对象,该引用也将作为循环范围。一旦循环完成,引用就会消失,对象将符合GC的条件。