Well, there is only one Java book that I really liked. If you're into things like that then just go read "Effective Java" by Joshua Bloch (who also happens to be at Google at the moment). It's one of those rare books that doesn't have a catchy title but when you will read the whole thing you will realize that you've become a better programmer. Got any recommendations for another such book? Please shoot.
"The Pragmatic Programmer" by Andrew Hunt and Dave Thomas.
It reads a bit like "the 7 habits for effectice developers", except that it contains about a 150 "habits". I have wished many, many times that I could force colleagues to read this.