&, |, ^, and ~ are bitwise operators.
>>>, >>, and << are bit shift operators.
See
Java Tutorial - Bitwise and Bit Shift Operators.
With respect to your example, the & operator compares two values bit by bit (bitwise), and returns a 1 if
both values have a 1 in that position. In other words, if the first value has a 1 in that position
AND the second value also has a 1 in that position. Otherwise, it returns a 0.
For example, suppose you have two binary values: 1100 and 1010. Applying the & operator to these values would result in 1000, because the fourth bit from the right is the only position in which
both values have a 1.
So consider (n&8)/8. In binary, 8 is 00001000. So if you have some other value 'n', then n&8 will result in 00000000 if the fourth bit of n is zero, or 00001000 if the fourth bit of n is one. Dividing this by 8 results in either 0 or 1 respectively -- which tells you what the fourth bit of n is.