1. FLAG的使用。
在使用FLAG时,以前我总是使用一个布尔变量来存放,这样以来,如果对象变多之后,每个对象都会有好几个布尔变量,也是不小的开销。在看源码的过程中,学习到一种将每个对象中的FLAG缩减到一个Int变量中的方法。
比如现在又4个FLAG。就定义四个静态常量值分别为1,2,4,8.再定义一个int flag来保存所有的FLAG状态。
在setFlag()中像如下实现:
setFlag(int flag,int value)
{
if(value){
this.flag |= flag;
}else{
this.flag &= ~flag;
}
}
而getFlag()则像如下实现:
getFlag(int flag){
return (this.flag & flag) != 0;
}
虽不是什么有技术含量的事,但权当一种经验吧,经验就是从一点一滴中积累出来的。