You can forget the other shallow Java books on the market. I have put together a short list of great Java books for newbies aspiring to become professional Java programmer. These are the books I wished I had when I was starting out early in my career.
Follow this link here to view the books.
No these books won't turn you into a great Java developer overnight, but invest time and absorb the knowledge and you are surely on the right path.
However if you absolutely need to read a good Java newbie book this year, then get Agile Java(TM): Crafting Code with Test-Driven Development (Robert C. Martin Series).
Or you just want to sharpen the skills regardless of the language you use then get The Pragmatic Programmer: From Journeyman to Master.
Ultimately, a good Java book will always make you a better programmer.