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