Para esclarecer de vez o operador bitwise do java:
'&' equivale ao 'e'.
' | ' equivale ao 'ou'.
Estes operadores fazem a comparação binária entre dois valores.
Por exemplo:
a = 12 (em binário 1100)
b = 7 (em binário 0111)
a & b = 1100 & 0111 = 0100 (fazendo o 'e' bit a bit)
a | b = 1100 | 0111 = 1111 (fazendo o 'ou' bit a bit)
espero ter ajudado...
abraços....