I teach a course that is intended to lead to Java Certification for our top high school students. They've been coding in Java for a while (these students have all taken and passed the Advanced Placement Exam for Computer Science). Would this book be appropriate as a classroom text?
My biggest problem is finding a text that is good for certification prep, but also has suggested projects or activities to learn the feature being studied. How would this fit in with that strategy?
And, of course, I need a high-quality reference for myself. I'm not a full-time Java professional (except sometimes in the summer) so I need sources that help answer questions from students quickly. When I started teaching C++ I used the C++ Primer Plus. What a great book! (at least for my purposes). The index was superb, and led to clear explanations and examples of features. Would this book fill that need?
I believe that my book would be appropriate for classroom use, but I'm biased. Although the chapters are lengthy, I've tried to create a solid organization that flows forward from simpler topics to more advanced topics. Each chapter ends with a collection of programming exercises. Some exercises are fairly advanced, such as creating a BlackJava server with a graphical client frontend.
I cover all of the Java 7 language features (e.g., switch-on-string, try-with-resources, and @SafeVarargs) and several APIs (e.g., JXLayer and Objects). APIs include language-oriented APIs (e.g., String, Threading, and Math), Collections, utilities (concurrency and Random), stream I/O, readers/writers, serialization, networking, JDBC, XML/DOM/StaX/SAX/XPath, and web services.
While discussing language features, I point out the perils of inheritance and compare interfaces to abstract classes. I also briefly refer to such topics as lazy initialization and a few design patterns.
I had planned to also cover NIO and security. However, I ran out of time when my publisher insisted that I include a chapter on Android. I really didn't want to do this because I don't see Android as having anything to do with Java 7.
Unfortunately, there are a few technical mistakes in the book that made is past my tech reviewers. However, I've created an errata.pdf document that can be freely downloaded from the book page on my website (http://tutortutor.ca/cgi-bin/makepage.cgi?/books/bj7). For each mistake, this document identifies the page number, points out the error, and provides a correction.
This book contains 12 chapters and 4 appendixes. Because of something called the print-on-demand limit, which prevents the book from exceeding 1000 pages cover to cover, all 4 appendixes could not be included in the book. Appendixes A (Solutions to exercises) and B (Java Scripting) are included in the code archive that can be freely downloaded from the book's Apress page -- the link is available on my website book page. Appendixes C (Odds and Ends) and D (significant applications) can be freely downloaded from my website page for this book (see the previous link).
Perhaps you will want to download all four appendixes and review them before making a decision on whether you want to purchase this book or not.