Alex is a Software Engineer working on Android development tools, especially Android Studio, at Google. His interests include Java, API design, OOP, IDEs and testing. Alex spends some of his spare time working on Open Source, blogging, writing technical articles, and speaking at international conferences. The opinions expressed here represent his own and not those of his employer. Alex is a DZone MVB and is not an employee of DZone and has posted 48 posts at DZone. You can read more from them at their website. View Full User Profile

Beginning Java SE 6 Platform: From Novice to Professional

08.19.2008
| 6413 views |
  • submit to reddit
I've been using Java 6 for a little more than a year now, and quite honestly, I haven't paid too much attention to the cool new features that this new version provides (with few exceptions, like 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!

Published at DZone with permission of Alex Ruiz, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)