Thinking in java - Eckel, Bruce (New Jersey: Prentice Hall, 2000)
Keywords: Programming