逻辑与(&) vs 条件与(&&) vs 按位与(&)

Java中有两种逻辑运算符 : & (与) 、 && (条件与)

Java有一种位运算符 :&(位与)

三者的区别

  1. 逻辑运算符 左右两端为true/false 判断结果也为true/false
  2. 位运算 左右两端为二进制数 / 整数,结果也是二进制数 / 整数(若左右两端不是二进制数则将数值转换成二进制数进行按位与操作)

​ 例如:2 & 6 = 2;(相当于0010 && 0110 = 0010)

  1. 由于Java不支持0/1代表false/true,所以0&1进行的是位运算,答案为0,而不是false

  2. 逻辑运算中,&运算若左边表达式为false则仍需对右边表达式判断, 而&&运算若左边表达式为false则无需判断右边表达式,结果为false

Guess you like

Origin blog.csdn.net/qq_51800570/article/details/120679326