与、或、异或的运算都是将两个数字转化为二进制数后,按位比较的,具体如下图:


与 ( & ) 0 & 0 = 0 1 & 0 = 0 0 & 1 = 0 1 & 1 = 1
或(|) 0 | 0 = 0 1 | 0 = 1 0 | 1 = 1 1 | 1 = 1
异或( ^ ) 0 ^ 0 = 0 1 ^ 0 = 1 0 ^ 1 = 1 1 ^ 1 = 0

与、或 操作符合日常逻辑,异或操作大家只要记住,相同为 0 ,不同为 1 即可。

PS: Java 在遇到与或是经常会顺带问问短路与 ( && ) 短路或( || )的区别,即遇到前半部分符合条件立即终止判断。