First of all, I highly recommend the book Effective Java by Joshua Bloch. It is an intermediate level book and I've learned quite a bit in reading it. It boost my learning by getting me into the mind of an expert Java developer.
Today, I've read an interview between Josh Bloch and Bill Venners. It has further helped me understand why certain things in Java were done that way, and how to think about my future program and API designs. Here's two of the best parts of the long read:
- Copy Constructor versus Cloning
- Factory Method versus Constructor
What I really like about Josh Bloch's style is that he explains all the pros and cons between the different ideas.
- Danial Goodwin -