看到有人写了一段这样的代码,不知道是什么意思,也不知道为什么这样作,有什么用用意? 代码如下:
private int metainfo;public void set(int mask, boolean set) {
if (set) {
metainfo |= mask;
} else {
metainfo &= ~mask;
}
}public boolean set(int mask) {
return (metainfo & mask) != 0;
}

解决方案 »

  1.   

    metainfo |= mask;
    metainfo &= mask;
    这些是位操作符就像是 1 | 2 其实就是  00000001 | 00000010 = 00000011 -->3
    1 & 2 = 0
      

  2.   

    metainfo |= mask就是
    metainfo =metainfo| mask
    |是或运算符
      

  3.   

    用这些位操作符,具体有什么作用或者特别的用途吗? 同样,我还在同一个类里面看到有类变量:public static final int PERSISTENT = 0X0100000, 等等
      

  4.   

    偶猜是通过BIT值来定义属性.不同的位置的0/1就代表一个属性的真假.
    第一个方法是设定.第二个方法读.
    第一个方法还包含了初始化.
      

  5.   

    性能不一样.INT有32位,如果用BOOLEAN做同样的事,那就需要32个布尔类型.
    而且读指定的多个属性时,如果用BOOL要比较多次.