Originally posted by Cay Horstmann:
Well, reflection has been in Java for a very long time (since 1.1 in fact). But generics are definitely a 5.0 feature.
The article http://java.sun.com/developer/technicalArticles/releases/j2se15/
has a nice overview of the new features.
My favorites are generic collections and the "for each" loop: