Java-for循环终止表达式之间的区别

Jai*_*iro 5 java performance loops xom

我很好奇:这两个循环实现之间在速度和性能上是否有所不同?假设size()方法返回处理一组元素的数组,集合或对象的长度(实际上是来自XOM api)。

实施1:

int size = someArray.size();
for (int i = 0; i < size; i++) {
    // do stuff here
}
Run Code Online (Sandbox Code Playgroud)

实施2:

for (int i = 0; i < someArray.size(); i++) {
    // do stuff here
}
Run Code Online (Sandbox Code Playgroud)

Pet*_*rey 4

从性能角度来看,差别不大。这是因为可以优化循环,以便内联 size() 查找,从而导致性能差异非常小。

主要区别在于循环时大小是否发生变化。第一种情况将尝试迭代固定次数。在第二种情况下,迭代次数将取决于最终的 size()。