Angenommen,
boolean a = false;
Ich habe mich gefragt, ob ich das tun soll:
a &= b;
ist gleichbedeutend mit
a = a && b; //logical AND, a is false hence b is not evaluated.
oder auf der anderen Seite bedeutet es
a = a & b; //Bitwise AND. Both a and b are evaluated.