Hi Thomas!
Thanks for looking over the preliminary version of my Generics chapter. I was sorry that our publication schedule and your family commitments conflicted. But, I am sure that there will be other opportunities!
As to your questions. In terms of language features proper, I think that programmers will be surprised by how much autoboxing/unboxing simplifies many aspects of
Java coding. Of course, everyone recongizes that autoboxing/unboxing is a major new feature, but what surprised me was how quickly (and naturally) I began to rely on it. I think that many skeptics will be pleasantly surprised, too.
Of course, if we include the libraries, then there are several areas that are interesting, but a bit under-reported. For example, support for 32-bit Unicode code points, the new concurrent packages, and the Stringbuilder class, to mention a few.
As to least favorite. I don't really have one. However, I suppose that of the major additions, static import is the one that I tend to use the least. It is wonderful to have this feature, but I personally don't often have a reason to use it.