Thinking in Java : the definitive introduction to object-oriented programming in the language of the world wide web - Eckel, Bruce (Prentice Hall, 2006)