Thinking in Java - Eckel, Bruce (Pearson Education, 2000)