java bitwise operator:
~ The unary bitwise complement operator "
~" inverts a bit
pattern.
<<The signed left shift
>>The signed right shift
>>>the unsigned right shift
& The bitwise & operator performs a bitwise AND
operation.
^ The bitwise ^ operator performs a bitwise exclusive OR
operation.
| The bitwise | operator performs a bitwise inclusive OR
operation.
Usage:
1, 
    - ^can swap two variables without using an intermediate,
    temporary variable which is useful if you are short on available RAM or
    want that sliver of extra speed.- Usually, when not using - ^, you will do:
 - temp = a;
 
 a = b;
 
 b = temp;
 - Using - ^, no "temp" is needed:
 - a ^= b;
 
 b ^= a;
 
 a ^= b;
 - This will swap "a" and "b" integers.  Both must be
    integers.
     
2,
an example of using an integer to maintain state flags (common
usage):
// These are my masks
private static final int MASK_DID_HOMEWORK  = 0x0001;
private static final int MASK_ATE_DINNER    = 0x0002;
private static final int MASK_SLEPT_WELL    = 0x0004; 
// This is my current state
private int m_nCurState;
To set my state, I use the bitwise OR
operator:
// Set state for'ate dinner' and 'slept well' to 'on'
m_nCurState = m_nCurState | (MASK_ATE_DINNER | MASK_SLEPT_WELL);
Notice how I 'or' my current state in with the states that I want to
turn 'on'.  Who knows what my current state is and I don't want to blow
it away.  
To unset my state, I use the bitwise AND
operator with the complement operator:
// Turn off the 'ate dinner' flag
m_nCurState = (m_nCurState & ~MASK_ATE_DINNER);
To check my current state, I use the AND
operator:
// Check if I did my homework
if (0 != (m_nCurState & MASK_DID_HOMEWORK)) {
    // yep
} else { 
    // nope...
}
Why do I think this is interesting?  Say I'm designing an interface
that sets my state.  I could write a method that accepts three booleans:
void setState( boolean bDidHomework, boolean bAteDinner, boolean bSleptWell);
Or, I could use a single number to represent all three states and
pass a single value:
void setState( int nStateBits);
If you choose the second pattern you'll be very happy when decide to
add another state - you won't have to break existing impls of your
interface.