2

在Java代码中,我认为:

for (int i = 0; i < s.length(); i++) {
    // do a lot of something
}

比这慢:

int length = s.length();
for (int i = 0; i < length; i++) {
    // do a lot of something
}

请告诉我我是否正确。

4

1 回答 1

7

理论上,第一个代码示例可能会更慢,因为它s.length()每次迭代调用一次。但是 JVM 可能会为您优化第一段代码。除非基准测试表明:

  1. 您处于对性能至关重要的一段代码中。
  2. 将长度存储在局部变量中实际上确实可以加快速度。
于 2012-07-14T22:21:50.867 回答