Thinking in Java - Eckel, Bruce (Prentice Hall ; Pearson, 2006)