Java Puzzlers: Traps, Pitfalls, and Corner Cases