Professional Java programming - Spell, Brett (Programmer to programmer, 2000)