in many cases, jdk 5 will be enough, since currently, using generics and Type safe and totally all jdk 5 features are getting popular but I suggest you to use jdk 6 and don't worry about compatibility of old version styled codes