Thinking in Java - Eckel, Bruce (Prentice Hall,(Ind Ed), 2006)