Thinking in Java is a classic Java book by Bruse Eckel. This is an awesome book, that goes far beyond the typical leanring Java books, because Bruce goes to some length to explain not just the how, but also the why.
If you want to get a more indepth understanding of the Java lanaguage and platform then this book is a definite ‘must read’ (however it may be too much information for someone just starting out with Java).
If you’ve come across this book before, then this 4th Edition of the book has been updated to cover Javav SE 5.0 features, and now weighs in at 1500 pages.
Previous editions of the book can be found for free electronic download on Bruce Eckle’s website, here.
Bruce was also recently interviewed on the Java Posse webcast, in which they talked about the book in some detail. The podcasts(2 parts) can be downloaded here.