Thinking in java - ECKEL (Prentice Hall, 2003)