Thinking in java - Eckel, Bruce . (Addison Wesley, 2000)