场景 节约内存
int 有4个byte换算成32bit 可以存放32个布尔值
在内存中存放一个布尔值最少都要1个byte,存进int可以节约内存空间
CUTE = 0x1 的二进制是 0000 0001
~CUTE 得到 -2 取反的二进制是 1111 1110
public class Cat { private static int CUTE = 0x1; private static int FAT = 0x2; private static int WHITE = 0x4; private int properties = 0; /** * 使用位运算设置猫咪萌的属性 * * @param cute true为萌,false为不萌 */ public void setCute(boolean cute) { if (cute) { properties = properties | CUTE;// | 运算 } else { properties &= (~CUTE);// 取反和&运算是为了设置false代表的0 } } /** * 这只猫萌吗?请在此处使用位运算读取properties,得到猫是否萌的结果 * * @return 萌则返回true,否则返回false */ public boolean isCute() { return (properties & CUTE) != 0; } public static void main(String[] args) { Cat cat = new Cat(); cat.setCute(true); System.out.println("这只猫萌吗:" + cat.isCute()); } }