首先,Java中 &,|,^,&&,||都有俩个身份,那就是逻辑运算符和位运算符
现在我们来了解一下他们的特性
1,逻辑运算符(boolean类型):
①& :同为true则为true,其他情况都为false
②| :有一个(>=1)为true,结果则为true,同为false结果才为false。
③^ : 相同则为false(无论同true或者false),不同为true
④短路&&和短路||和&,|结果是一样的,但是&&和||效率更高
eg1:&&:左边的数若为false,则右边不再运行
eg2: ||:若左边的数为true,则右边不再运行。
2、位运算符(以^为例)
①a,b两个数进行异或运算时,编译器会将这两个数转化为二进制(一共八位,位数不够则用0补上)的数,
②再进行位运算,若对应位数相同,则该位为0;不同则为1,此时会得到一个新的数
③重复运算两次,则会交换a,b俩个数。
如图所示: