&(与),|(或),^(异或),~(非)
位运算符作用在数字上,得把数字转换成二进制
1.&(与):按位与,只有结果同时为一才为一,否则为零
3&4
3:0011
4:0100
结果为0000 System.outprintln(3&4) 为0
2.|(或):按位或,只有结果同时为零才为零,否则为一
3|4
3:0011
4:0100
结果为0111 System.outprintln(3|4) 为7
3.^(异或):两边相同为0,不同为为1
3^4
3:0011
4:0100
结果为 0111 System.out.println(3^4) 为7
4.~(非):0为1,1为0
~3
3:0011
~3:1100
结果为 1100 System.out.println(~3) 为-4(最前面表示符号,0为正,1为负)
&&和||
&&和&中条件表达式都为ture才为ture,否则为false
||和|中条件表达式只要有一个满足ture就为ture,全部为false就为false
语句短路:
&&:左边表达式为false,就已经表明整个表达式为false,右边的就不用运算或者判断,就会屏蔽掉,
若左边表达式为ture,就右边的表达式还要判断运算,一直判断完
||:左边表达式为ture,就已经表明整个表达式结果为ture,右边的表达式就不会运算了,会被屏蔽掉,
若左边表达式为false,右边就会继续判断运算,知道运算完。