Thinking in Java - Eckel,Bruce (Pearson education, 2004)