Thinking in Java - Eckel, Bruce (Prentice hall, 2000)