在Java for循环中,++ i真的比i ++快吗?

在Java中,我通常会进行如下所示的for循环:

for (int i = 0; i < max; i++) {

something

}

但是最近一位同事打了这样的字:

for (int i = 0; i < max; ++i) {

something

}

他说后者会更快。真的吗?

回答:

不,那不是真的。您可以通过定时每个循环进行大量迭代来衡量性能,但是我可以肯定它们会是相同的。

神话来自C,它++i被认为比C

更快,i++因为前者可以通过增加i然后返回来实现。后者可以通过将i的值复制到临时变量,递增i,然后返回临时变量的方式来实现。第一个版本不需要制作临时副本,因此许多人认为它会更快。但是,如果将表达式用作语句,现代C编译器可以优化删除临时副本,以便在实践中没有区别。

以上是 在Java for循环中,++ i真的比i ++快吗? 的全部内容, 来源链接: utcz.com/qa/424618.html

回到顶部