Effective Java : programming language guide - Bloch, Joshua, 1961- (JavaTM Series, 2001)