如果作为面试题,可能很多人都会答错
public class Test {
private static int count;
public static void main(String[] args) {
count = 0;
for (int i : init()) {}
System.out.println("foreach,init方法执行次数:" + count);
count = 0;
for (int i = 0; i < init().length; i++) {}
System.out.println("for,init方法执行次数:" + count);
}
private static int[] init() {
count++;
return new int[] { 1, 2, 3, 4, 5 };
}
}
结果:
foreach,init方法执行次数:1
for,init方法执行次数:6