我知道foreach循环是Java的“语法糖”,但这是实现方法,为什么?
for (Object s : list)
{
System.out.println(s.hashCode());
}
等于:
Object s;
Iterator<Object> iterator = list.iterator();
while(iterator.hasNext())
{
s = iterator.next();
System.out.println(s);
}
或
Iterator<Object> iterator = list.iterator();
while(iterator.hasNext())
{
Object s = iterator.next();
System.out.println(s);
}
是在循环内还是循环外定义了局部变量“ Object s”?
我尝试将s定义为final,并且没有错误,因此我认为在循环内定义了“ s”。 但是,在每个循环中分配局部变量时,会不会花费更多的堆栈空间?