为什么一个 40 亿次迭代的 Java 循环只需要 2 毫秒?
我正在使用2.7 GHz Intel Core i7的笔记本电脑上运行以下Java代码。我打算让它测量完成一个循环需要多长时间,迭代次数为2^32次,我预计大约是1.48秒(4/2.7 = 1.48)。
但实际上它只需要2毫秒,而不是1.48秒。我想知道这是否是下面任何JVM优化的结果?
public static void main(String[] args)
{
long start = System.nanoTime();
for (int i = Integer.MIN_VALUE; i < Integer.MAX_VALUE; i++){
}
long finish = System.nanoTime();
long d = (finish - start) / 1000000;
System.out.println("Used " + d);
}