After looking at a number of Java programming books, I chose this book to use for teaching AP Computer Science to our home-schooled son. In 16 chapters Horstmann covers every topic on the old AP Computer Science AB syllabus and much more. The first 14 chapters of the book go well beyond the new AP Computer Science A syllabus. Two additional chapters on generics and GUI programming are freely available from the author's website. Adding these two chapters makes this book identical to the author's Java Concepts text at about 2/3 of that book's current price. This makes it an even more attractive choice for AP Computer Science and self-study.
The exercises and projects in the book run the gamut from the routine (for example, modifying code in the text) to the challenging (for example, gliders in the Game of Life). I've found this to be especially helpful for a beginning programmer when the concepts are new. Horstmann's book also contains a wealth of additional features (Common Errors, How To's, Quality Tips, Productivity Hints, Advanced Topics, and Random Facts) set off from the main text but positioned to complement it. While beginning students may not appreciate the utility and wisdom of many of them, instructors and seasoned programmers certainly will. I've found the Random Facts to be especially interesting. The photo of the very first "bug" and a little about its history is my favorite of these special features.
Previous reviewers seem to have completely misunderstood the purpose of Horstmann's text. The AP Computer Science syllabus does not include GUI programming. Thus I didn't expect to find any in this text. I was delighted to discover that this book does have a graphics track which includes sections in many chapters where plenty of basic Swing classes are introduced. Since Chapter 18 from the author's Java Concepts is freely available and covers more of this topic, this book does cover Swing in sufficient detail for the novice.
The only addition I would like to see to this book is a chapter, or an appendix, on GridWorld, the current AP Computer Science case study. Since Horstmann is the creator of GridWorld, a chapter on that topic that included a number of challenging exercises would make this book even more valuable for AP Computer Science students. Fortunately, there is ample documentation for GridWorld available from the ETS and in exam review guides, and so the lack of it in this book is only a slight flaw.
Finally, I also recommend Frances Trees' study guide that can be purchased separately from Horstmann's book. I've found it useful to use as a chapter by chapter review and a taste of what to expect on the real AP exam. To practice for the exam itself I highly recommend the exam guides published by Barron's and by Maria and Gary Litvin.