public void zero() {
int sum = 0;
for (int i = 0; i < mArray.length; ++i) {
sum += mArray[i].mSplat;
}
}
public void one() {
int sum = 0;
Foo[] localArray = mArray;
int len = localArray.length;
for (int i = 0; i < len; ++i) {
sum += localArray[i].mSplat;
}
}
Run Code Online (Sandbox Code Playgroud)
根据Android文档,在上面的代码中,零更慢.但我不明白为什么?好吧,我还没有那么深入,但据我所知length,这不是一个方法.所以当循环检索它的值时,它与从局部变量检索的不同之处是什么?一旦初始化,数组长度总是固定的.我错过了什么?
嗯,我想这是因为zero,他总是需要从检索信息mArray并在one,他有它访问.这意味着,zero需要两个"方法":
但one只需要一个"方法":
| 归档时间: |
|
| 查看次数: |
160 次 |
| 最近记录: |