I'm a fairly well versed programmer in some of the older style languages like C and C++. If you have some archaic C question, I may be your woman. I'm not so familiar with Java - in fact the last time I touched the language I could run to the local coffee shop, get a coffee, and get back to my program and it would just be starting up (back in the dark days, when java was really slow). Fast forward 12 years and not only is Java nimble and performant, but its something I need to know. Yesterday. Knowing this, I turned to the Head first series as they get their points across quickly and cleanly.
Head First really does teach the topics so that you'll remember them. Most into programming books give you an example and you work through it. In Head First, yes there is an example, but the examinations happen via stories, diagrams, pictures, games and really good (bad) humor. What this means is that no matter how you learn, you'll find something that helps the concepts stick. Each chapter builds upon the last and each chapter reinforces lessons from before. You can tell that people who really know how to teach designed these books.
Now this book is basic. I personally didn't mind reading about Objects and Object-Oriented design yet again. I also didn't mind reading about polymorphism, encapsulation, et al. The main reason for this is the presentation. Well that and there are a few subtle differences between C++ and Java that they talk about that I need to know. But mostly its the fun way they present the topics. I mean even if you know these topics cold, I still found some of their examples and comparisons well thought out and memorable. So much so in fact that I can see using them to help explain concepts to people I'll mentor or to marketing folks.
If, however, you have programmed in Java before and are comfortable in the world of OO, and are looking for something to take you to the next step, I'd suggest you keep moving onto other books (Effective Java by Bloch is amazing). However, if you are new to Java, and even new to programming, you'll love the Head First books. The writing is clear and engaging (and correct!), the examples make sense, and way they tailor lessons to trigger different parts of your learning brain is really well done.