如果一個變量需要經常通路,那麼你就需要考慮這個變量的作用域了。static? local?還是執行個體變量?通路靜态變量和執行個體變量将會比通路局部變量多耗費2-3個時鐘周期。
例子:
public class USV {
void getSum (int[] values) {
for (int i=0; i < value.length; i++) {
_sum += value[i]; //violation.
}
}
void getSum2 (int[] values) {
for (int i=0; i < value.length; i++) {
_staticSum += value[i];
}
}
private int _sum;
private static int _staticSum;
}
更正:
如果可能,請使用局部變量作為你經常通路的變量。
你可以按下面的方法來修改getSum()方法:
void getSum (int[] values) {
int sum = _sum; // temporarylocal variable.
for (int i=0; i < value.length; i++) {
sum += value[i];
}
_sum = sum;
}
Peter Haggar: "Practical Java -Programming Language Guide".
Addison Wesley, 2000, pp.122 – 125