Effective Java - Bloch, Joshua, 1961- (The Java series, 2008)