????5.?t??????????

????????????????????????Σ?????????????????????????15%??20%????????????????????????????????????????????÷???????????′?????????

????6.?????????Getters/Setters

???????????????C++?У????????????Getters??i=getCount()??????????????Σ?i=mCount????????C++?????????????????????????????Щ???????????????????????Щ???????????????κ??????????

??????Android?У????????????????鷽?????????????????θ?????????????????????????????????????????Getters??Setters???????????????????????????????ε????в??????????

??????JIT????????η?????????????????getter???????3??????JIT???????????ο???????????????????????????7??????Froyo?汾????????????????JIT?и??Getter????????????

????7.????????StaticFinal???η?

???????????????????????

????Java????

staticintintVal=42;
staticStringstrVal="Hello??world!";

???????????????????????????clinit????????α???????У??????????42????intVal?У?????????????????strVal?????á?????Щ?????汻????????????????β?????з????

??????????????????final??????

????Java????

staticfinalintintVal=42;
staticfinalStringstrVal="Hello??world!";

???????????clinit???????????????????dex????е?????γ???????С?????intVal????????????????42????????strVal???????????????С??stringconstant(?????????)????????β??????????????????????????????????String???????????????????????????????????????????????staticfinal?????????????????

????8.???????For?????

?????????for?????????????for-each?????????????????iterable??????????????С?????????У????????????????hasNext()??next()????????ArrayList?У???????????????3?????????????JIT?????????????????У??????for?????????????????????Ч???

???????????Щ?????????????

????Java????

staticclassFoo{
intmSplat;
}
Foo[]mArray=...

publicvoidzero(){
intsum=0;
for(inti=0;imArray.length;++i){
sum+=mArray[i].mSplat;
}
}

publicvoidone(){
intsum=0;
Foo[]localArray=mArray;
intlen=localArray.length;

for(inti=0;ilen;++i){
sum+=localArray[i].mSplat;
}
}

publicvoidtwo(){
intsum=0;
for(Fooa:mArray){
sum+=a.mSplat;
}
}