java - 为什么嵌套 Java 循环执行得非常快

标签 java optimization nested-loops

出于好奇,我最近用 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/

相关文章:

javascript - 优化 JQuery 中的每个循环

java - 非常频繁地上传几个字节的数据(每秒)

Django:使用整数设置外键?

java - 每行之前的 JRadioButtons

java - 了解 GIF 何时播放完毕

java - 从 map 中获取值(value)

java - 如何让 hadoop wordcount 示例正常工作?

javascript - 在 JSX 的嵌套 map 函数中 react JS 打印数据

c# - 添加无限次嵌套代码

nested-loops - 马塔 : Create a matrix that contains averages of all elements of 3 matrices