Pro Java Programming - Brett Spell (Apress)