Java优化-局部变量与对象属性

时间:2018-08-17 05:30:34

标签: java optimization

这似乎很乏味,但是我知道在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];
}

1 个答案:

答案 0 :(得分:1)

我会说这取决于。 在您的示例中,它没有任何改变。创建局部变量的速度与使用length属性的速度一样快。 但是,使用类中的字段并不是很常见,相反,我们都使用getter,例如:

// not used
class Person {
    public String name;
}

// used
class Person {
    private String name;

    public String getName() {
        return name;
    }
}

在这种情况下,使用getName()也和局部变量一样快,但是getName()是一种方法,内部可以是任何东西。您可以进行非常复杂的内部计算(不建议这样做,但是您不能禁止这样做)。在这种情况下,局部变量应该更快,因为您只计算一次。