Bloch, J. & Gafter, N. (2005). Java(TM) Puzzlers: Traps, Pitfalls, and Corner Cases. , .