出于好奇,我最近用 Java 编写了两个嵌套的 for 循环,它们都简单地算到了 10 亿 (1'000'000'000)。
令人惊讶的是,Java 在不到一秒的时间内完成了这项任务。在其他语言中,这永远不会那么快完成。
另一个奇怪的事情是,当我添加第三个 for 循环(也嵌套)时,程序似乎并没有结束。
谁能告诉我这个速度从何而来?
编辑:
以下是我的代码:
for (int i = 0; i < 1000000000; i++) {
for (int r = 0; r < 1000000000; r++) { }
}
System.out.println("done");
最佳答案
java编译器优化了循环并将其删除。但如果您使用 volatile int,情况就不是这样了:
static volatile int i;
public static void main(String[] args) {
for (i = 0; i < 1000000000; i++);
}
上面的循环会花费很多时间,因为现在java编译器无法优化循环。
关于java - 为什么嵌套 Java 循环执行得非常快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29265842/