Bitwise and (&) and or (|)

Note the Java Programming Language specification for the expressions - particularly for bitwise operators it states
When both operands of a &, ^, or | operator are of type boolean, then the type of the bitwise operator expression is boolean.

Also note the bottom of the page here.
Don't confuse &&, which is the logical and, with &, which is the uncommon bitwise and. Altho the bitwise and can also be used with boolean operands, this is extremely rare and is almost always a programming error.