Wobei - zumindest in C - & und && nicht immer das gleiche Ergebnis liefern: 0x10 & 0x01 == 0 <=> false; 0x10 && 0x01 <=> true && true == true
Ja, in C. Das ist auch klar, weil da & die bitweise Verknüpfung ist und jeder beliebige Integerwert auch als boolscher Wert interpretiert werden kann, nachdem false einfach als 0 und true als != 0 (bei Verwendung der Konstanten true ist es -1) interpretiert wird. 0x10 & 0x01 ergibt somit false.
Java erkennt aber ob es sich um boolsche Ausdrücke handelt und wählt zwischen dem bitweisen und dem boolschen Operator. 0x10 & 0x01 in einer Bedingung müsste in Java wenn ich mich jetzt nicht irre zu einem Compilerfehler führen weil es kein boolscher Ausdruck ist.