SwingWorker.) Luckily, author Jeff Friesen provides a detailed guide to the new and improved features in Java SE 6.
The title of the book is a little bit misleading. Because of the inclusion of the words "beginning" and "novice," one would expect this book to be an entry-level one that teaches how to program in Java using its latest version. For my surprise, this book is not for beginners. It does not cover basic Java concepts (e.g. data types) or object-oriented programming. This book is intended for experienced developers with solid Java knowledge that want to learn what's new in the latest and greatest version of Java SE.
(I'm not going to list the chapters in the book. You can find a description of the book, table of contents, errata and source code at the book's web page.)
I'm amazed by the amount of detail that the author paid attention to. He not only covers what the new features in Java 6 are and how to use them, Mr. Friesen also also offers a lot of technical and non-technical facts that explains why these new features were included and why they were implemented they way the were implemented. The book includes plenty of links to articles, tutorials and bug numbers (from Sun's bug database.) It even includes little details like the expiration of one of Unisys' patents as the reason why Java 6 now includes a GIF writer!
Amazingly, the book also covers some of the features that were planned for Java 6 but unfortunately didn't make it. For example, it briefly talks about the JDBC 4.0 EoD Annotations, which were supposed to make data access very simple (BTW, I was really, really sad -to the point of crying- when I read the news about the exclusion of this feature back in October '06.)
I found the book very interesting and easy to read. The language used is clear and simple: I got a good understanding even of the areas I'm not familiar with (e.g. SPNEGO HTTP Authentication.) Also, each chapter includes a "Test Your Understanding" section, which includes several questions and exercises to, you guessed it, test your understanding of each chapter.
There are also one or two (minor) things I didn't like. First, code examples are way too long. Sometimes a single code example takes 2 or 3 pages, making the example more difficult to understand, especially when trying to match different levels of indentation (e.g.
SwingWorker example at page 141.) I think this is not necessary, especially when only five to ten lines are the ones relevant to the topic being discussed. Instead, I'd prefer to see only those five to ten lines. If I wanted to see the whole example, I'd go to the book website and download the source code.
As I previously mentioned, the book is packed with references to online articles. Unfortunately, those links are present in the book but not in its website. I have to type URLs myself (which is error prone,) instead of clicking a link (I know, I know, I'm a whiner )
Overall, I really like this book. It is a complete guide and excellent reference to the new and improved features in Java SE 6. Highly recommended!