Effective Java 2nd Edition by Joshua Bloch
Items:
- Consider to use static function instead of constructor
- Consider to use Builder for many constructor parameters, avoid telescoping constructor(hard to write and read), avoid JavaBean builder(not thread safe)