请参阅以下代码段:
Long first_begin = System.currentTimeMillis();
// first nested loops
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 1000000; j++) {
// do some stuff
}
}
System.out.println(System.currentTimeMillis() - first_begin);
// second nested loops
Long seconde_begin = System.currentTimeMillis();
for (int i = 0; i < 1000000; i++) {
for (int j = 0; j < 10; j++) {
// do some stuff
}
}
System.out.println(System.currentTimeMillis() - seconde_begin);
我想知道为什么第一个嵌套循环的运行速度比第二个慢?
问候!
重要的提示!: 很抱歉,第一次问这个问题时,我不小心把变量 j 以 1 开头,我已经更正了。
更新:循环中没有任何特定的逻辑,我只是在做一些测试,实际上这是在面试时提出的一个问题,面试官提示我改变循环的顺序以获得更好的性能。顺便说一句,我使用的是 JDK1.5。经过一些测试,我现在更加困惑,因为程序的结果并不一致——有时第一个循环运行得比第二个快,但大多数时候它的运行速度比第二个慢。