可能重复:
Java:空循环使用多少时间?
看看以下内容:
for (int j = 0 ; j < 5 ; j++) {
long t1 = System.currentTimeMillis();
for (int i = 0 ; i < 10000000 ; i++)
; // intentionally empty
long t2 = System.currentTimeMillis();
System.out.println (t2 - t1);
}
输出(许多可能之一):
2
11
0
0
0
如果你多次运行这个程序,你会发现输出的前两个数字总是非零,而所有其他数字确实是 0。此外,第二个数字通常看起来比第一个大。即使我们循环更高,这似乎也成立,比如直到j < 100
。这有什么具体原因吗?当然,毫秒一般来说可能不会有太大的不同,但我只是好奇。