在代码大全中看到了一个观点:越繁忙的循环应该放在最内部,可以减少初始化的次数,随即我在Java中进行验证,但是结果却恰恰相反
public class Main {
public static void main(String[] args) {
int sum = 0;
final int big = 10000000;
final int small = 10;
long l = System.nanoTime();
for(int i = 0;i < big;i++){
for(int j = 0;j < small;j++){
//sum++;
}
}
System.out.println("big out : " + (System.nanoTime() - l));
l = System.nanoTime();
for(int i = 0;i < small;i++){
for(int j = 0;j < big;j++){
//sum++;
}
}
System.out.println("big in : " + (System.nanoTime() - l));
}
}
最终的打印结果为:
big out : 5119088
big in : 15178535
明显是for循环在外部的更快,看了很多帖子也没有头绪,请问这是因为JVM对于for循环的优化导致的吗?