问题描述
想象一下,速记看起来很像这样:
for (Iterator<Integer> iter = listofNumbers.iterator(); iter.hasNext(); )
{
final int i = iter.next();
{
System.out.println(i);
}
}
解决方法
我很惊讶地看到下面的Java代码片段已编译并运行:
for(final int i : listOfNumbers) {
System.out.println(i);
}
其中listOfNumbers是整数数组。
我以为最终声明只分配了一次。编译器是否正在创建Integer对象并更改其引用?