I had one introductory Java class that used that book and I didn't find it very helpful. I ended up using it literally as a doorstop after the prof suggested we do so as a joke, only kept it to do the assignments from the book, and went with Eckel's Thinking in Java instead.
That was a few years ago and a couple editions back..but I think some of it was personal preference/frustration. It's been a while so I forgot what my particular gripes were..I thought the introductory stuff was okay but (iirc) what ended up happening was that the book didn't cover anything particularly advanced that I wanted to know more about, which at that point was probably things like JDBC and JavaServer...things...I guess back then it was JSP and servlets, it looks like they dropped that for JSF in the newer editions. Obviously I can't expect a book to cover everything, but I mean I was expecting at least a gloss-over of the more advanced topics.
Plus, if I remember correctly, a new edition of Thinking in Java was less than half the price and an older edition is available online for free. Sooo...
I initially hated the book. I though its attention to detail was anal at best. But if you took the time to read it all, it really did cover a lot and I felt that I had a solid and complete understanding of the concepts (not a feeling I get when reading most other books).
True it didn't cover the advanced stuff which is why I bought 'Advanced Java How to Program' as well.
Correction: if you read, understand, and write code based on that book you may legitimately claim to know Java.
Reading books about programming languages teaches you about as much about programming as reading sheet music does about composing. It's a key prerequisite, but not the same thing.
http://www.deitel.com/Default.aspx?tabid=1191
Highly recommend.