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;
}
}
Android のドキュメントによると、上記のコードではゼロの方が遅いです。しかし、私はなぜ理解していないのですか?まあ、私はそれほど深く学んでいませんが、私が知ってlength
いるように、メソッドではなくフィールドです。では、ループがその値を取得するとき、ローカル変数から取得するのとどう違うのでしょうか? 配列の長さは、初期化されると常に固定されます。何が欠けていますか?