reading Thinking in Java