在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
}
请告诉我我是否正确。
最佳答案
理论上,第一个代码示例可能会更慢,因为它每次迭代都会调用 s.length()
一次。但 JVM 可能会为您优化第一段代码。使用更简单的方法,除非基准测试表明:
- 您正在执行一段对性能至关重要的代码。
- 将长度存储在局部变量中实际上确实可以提高速度。
关于java - 在 for 声明中调用 .length() 比在循环之前调用 .length() 慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11487807/