Assuming
boolean a = false;
I was wondering if doing:
a &= b;
is equivalent to
a = a && b; //logical AND, a is false hence b is not evaluated.
or on the other hand it means
a = a & b; //Bitwise AND. Both a and b are evaluated.
Assuming
boolean a = false;
I was wondering if doing:
a &= b;
is equivalent to
a = a && b; //logical AND, a is false hence b is not evaluated.
or on the other hand it means
a = a & b; //Bitwise AND. Both a and b are evaluated.
Here's a simple way to test it:
public class OperatorTest {
public static void main(String[] args) {
boolean a = false;
a &= b();
}
private static boolean b() {
System.out.println("b() was called");
return true;
}
}
The output is b() was called, therefore the right-hand operand is evaluated.
So, as already mentioned by others, a &= b is the same as a = a & b.