"I have been writing JDK 5.0 code for over six months now, so I thought I would take some time to reflect on my experience and draw a few conclusions on the features that were introduced."
Surprisingly the favourite, is the enhanced for loop:
"The undisputed winner. I can't even begin to describe how good it feels to use the new for loop everywhere (well, almost everywhere). I mentally cringe the few times when I am forced to use the old for loop, typically when I need the index or that I want the Iterator to be visible outside the loop."
Unsurprisingly annotations gets a rave:
"Obviously, I am partial to annotations since they are at the heart of TestNG but I am a firm believer that annotations are going to change the way we build software in Java. We have been relying for far too long on reflection hacks to introduce meta-data in our programs, and annotations are finally going to provide an excellent solution to this problem.
Also, I haven't felt the need to use some of the predefined annotations such as @Override, so I haven't formed an opinion on them yet.
It seems inescapable to me that in a couple of years, most of the Java code that we will be reading and writing will contain annotations. "
"In a nutshell, I have this to say about Java generics: my code feels more robust, but it's harder to read."
JDK 5 in Practice.
Also an interview with one of the authors of Hibernate:
"Well, we are a bit stuck. We can't use many of the new features, because Hibernate needs to stay source-level compatible with older JDKs. The annotations stuff is okay, because we can provide it as an add-on package.
Certainly, annotations are the most significant new feature of Java 5, and it's very likely that they will completely change the way we write code."