&&与&的差别
记录学习工作的中点点滴滴~
&&
逻辑与运算(短路)
&
1. 按位与运算;
2. 逻辑与运算。
&&在左边的表达式为false后就不执行后续的表达式。
&不管左边表达式的值正确否都会执行后续的表达式。
/** * &&在左边的表达式为false后就不执行后续的表达式。 * &不管左边表达式的值正确否都会执行后续的表达式。 */ @Test public void test001() { int i = 3; boolean flag = false && (++i > 10); System.out.println(flag); // false System.out.println(i); // 3 flag = false & (++i > 10); System.out.println(flag); // false System.out.println(i); // 4 }
按位与运算操作。全1为1。
/** * 按位与运算操作。全1为1。 */ @Test public void test002() { int b = 10; System.out.println(Integer.toBinaryString(b)); // 1010 int c = -2; System.out.println(Integer.toBinaryString(c)); // 11111111111111111111111111111110 int d = b & c; System.out.println(Integer.toBinaryString(d)); // 1010 }