I needed stimulus to write something here, and today it has come!
That stimulus was reading a great AMA (ask me anything) with some successful Polish Java Developer, who is currently working for some real money in Switzerland http://www.wykop.pl/link/1209873/ama-programista-z-doswiadczeniem/# There are tons of interesting questions and answers (of course that's true only if you know Polish;)), that can be good signboards for low and mid experienced programmers, and even more for still wannabe-programmers. One of them was about books that he is recommending.
So, going to the point:
Java Concurrency in Practice
Doing further research I've found another awesome thing to read - a great presentation on the optimizations used by modern JVMs on the Jikes RVM site:
Dynamic Compilation and Adaptive Optimization in Virtual Machines
And... that's all - I'm pretty excited and in rush to read
*UPDATE: After some reading of Java Puzzlers, I have to say, that I feel disappointed. This book is too much about some error prone things, that are so error prone, which make them obvious that those kinds of code shouldn't be written without some testing before. And in most cases they are so unreadable, that wouldn't be written by anyone in first place. To sum up - if you don't have anything waiting to be red - go for Java Puzzlers, if you do - don't waste you time ;)
BTW. I'm really surprised every time I hear that someone hasn't read at least Effective Java yet...