这似乎很乏味,但是我知道在JavaScript中,如果对象属性将被多次使用,则声明局部变量是优化的最佳实践。例如:
var i, length = array.length;
for(i = 0; i < length; i++) {
console.log(length);
}
我很好奇在Java中是否也是如此,例如在此示例中,我两次使用values.length
。
for(int i = 0; i < values.length && length < values.length + i; i++) {
vector[i + index] = values[i];
}
答案 0 :(得分:1)
我会说这取决于。
在您的示例中,它没有任何改变。创建局部变量的速度与使用length
属性的速度一样快。
但是,使用类中的字段并不是很常见,相反,我们都使用getter,例如:
// not used
class Person {
public String name;
}
// used
class Person {
private String name;
public String getName() {
return name;
}
}
在这种情况下,使用getName()
也和局部变量一样快,但是getName()
是一种方法,内部可以是任何东西。您可以进行非常复杂的内部计算(不建议这样做,但是您不能禁止这样做)。在这种情况下,局部变量应该更快,因为您只计算一次。