Thinking In Java - Eckel
15