Effective Java : programming language guide - Bloch, Joshua (Addison-Wesley, 2001)