Thingking in java - Eckel, Bruce (Prentice Hall, 1998)