A popular interview question in java is “what is new in Java version X?”. Is that an intelligent question is debatable. I have summarized below important new features added in each major java release till now. I target to highlight important features added in respective release. Apart from below list of features, every release has enhancements and lots of bug fixes.
Java Version SE 7
Code named Dolphin and released on July 28, 2011.

New features in Java SE 7
- Strings in switch Statement
- Type Inference for Generic Instance Creation
- Multiple Exception Handling
- Support for Dynamic Languages
- Try with Resources
- Java nio Package
- Binary Literals, underscore in literals
- Diamond Syntax
- Automatic null Handling
Java Version SE 6
Code named Mustang and released on December 11, 2006.

New features in Java SE 6
- Scripting Language Support
- JDBC 4.0 API
- Java Compiler API
- Pluggable Annotations
- Native PKI, Java GSS, Kerberos and LDAP support.
- Integrated Web Services.
- Lot more enhancements.
J2SE Version 5.0
Code named Tiger and released on September 30, 2004.

New features in J2SE 5.0
- Generics
- Enhanced for Loop
- Autoboxing/Unboxing
- Typesafe Enums
- Varargs
- Static Import
- Metadata (Annotations)
- Instrumentation
J2SE Version 1.4
Code named Merlin and released on February 6, 2002 (first release under JCP).

New features in J2SE 1.4
- XML Processing
- Java Print Service
- Logging API
- Java Web Start
- JDBC 3.0 API
- Assertions
- Preferences API
- Chained Exception
- IPv6 Support
- Regular Expressions
- Image I/O API
J2SE Version 1.3
Code named Kestrel and released on May 8, 2000.

New features in J2SE 1.3
- Java Sound
- Jar Indexing
- A huge list of enhancements in almost all the java area.
J2SE Version 1.2
Code named Playground and released on December 8, 1998.
New features in J2SE 1.2
- Collections framework.
- Java String memory map for constants.
- Just In Time (JIT) compiler.
- Jar Signer for signing Java ARchive (JAR) files.
- Policy Tool for granting access to system resources.
- Java Foundation Classes (JFC) which consists of Swing 1.0, Drag and Drop, and Java 2D class libraries.
- Java Plug-in
- Scrollable result sets, BLOB, CLOB, batch update, user-defined types in JDBC.
- Audio support in Applets.
JDK Version 1.1
Released on February 19, 1997
New features in JDK 1.1
- JDBC (Java Database Connectivity)
- Inner Classes
- Java Beans
- RMI (Remote Method Invocation)
- Reflection (introspection only)
JDK Version 1.0
Codenamed Oak and released on January 23, 1996.
Wishing you a happy new year!
















Good post! Its pretty neat for a quick recap of which feature showed up in which release :)
I didn’t quite catch a few of the feature.
Whats Automatic Null Handling in Java 7? Do you mean the Elvis operator? It was proposed as part of project coins, but wasn’t implemented in Java 7.
Also whats the difference between Type Inference for Generic Instance Creation and Diamond Syntax?
Sam on January 2nd, 2012 4:52 amvery nice post!
It’s a quick revise of java features.
Thank you!
Rajeev on January 2nd, 2012 6:36 amthank you Joe,I refered your blog for easy reference when I prepared for an interview.Now I am regular reader of your blog. But you should post more often,like once in a week or so.
John on January 2nd, 2012 7:47 amwill help us to get new Features with example.
Bhushan on January 2nd, 2012 1:28 pmi am always appriciated ur updates…….”think hatke”
shubham on January 2nd, 2012 9:11 amTHANKU SIR FOR UR INFORMATION
PRAVEEN KUMAR PC on January 2nd, 2012 10:55 amThanks for update.
Bhushan on January 2nd, 2012 12:40 pmThis would be more useful to fresher like me , if demonstrative example is given. Like Try with resources means what ? This is very good I liked it but examples could add one more feather in Blog
java nio package is there from J2SE 1.4 on-wards. What’s new about nio in J2SE 1.7
Bhaskar on January 2nd, 2012 5:05 pmVery Nice Post!!
Amit on January 3rd, 2012 6:22 amThanks
It is really a nice look-up information page. Lot of features of java6 and Java7 was not known to me due to your share now I know. I am user of Java6. Thanks.
PSG on January 3rd, 2012 7:25 amnice share ..
surendra8 on January 3rd, 2012 9:58 amJava SE 7 referens implementation is not Sun/Oracles any more, it’s OpenJDK. I guess that might be important em enough to be in this list. Oracle has changed the license so it can’t be redistributed in binary form by others any more. That is why Sun JDK will be removed from all distributions in the future.
Anders on January 4th, 2012 6:43 pmUse OpenJDK instead.
thanks a lot nicely explained with images
vema on January 5th, 2012 10:21 amHi Thanks for your valuable info.
JavabynataraJ on January 5th, 2012 12:13 pm+1
Never knew the codenames. Now I will not forget.
Tahir Akram on January 5th, 2012 7:13 pmnice explanation
Raju S on January 5th, 2012 7:31 pmyou explain so nicely if possible please teach the java language in detail
radhika on January 10th, 2012 1:10 pmvery nice sir , and i want know about the details of the arrays so could me the explanation in that.
sarath on January 11th, 2012 12:21 pm@Sarath refer the following link for array:
Joe on January 11th, 2012 12:54 pmarrays
Its very nice.
josh on January 17th, 2012 3:56 pmif u can add more information then that will be more good
Ahoy there Java captains!! Good oh and wonderful news for the Javas out there to be approaching the 7. The best release is the Java 8 which comes from Chian Guk province. It has the support for juice and multi facet persistence with bean promolgation.
Gaptor on January 20th, 2012 10:12 amIts very nice….
aruna on January 24th, 2012 4:24 pmHi joe,
You told that In jdk1.7 the null will be handled automatically. But when I tried, Its showing exception..
Could you please explain .? Thanks in advance!!!
public class nullpointerex {
public static void main(String args[]) {
String a;
System.out.println(a.charAt(1));
}
}
}
prakash on January 25th, 2012 12:54 pmthanks joe………
shashikant on January 25th, 2012 2:58 pmThanks Joe….
Naresh on January 25th, 2012 3:06 pmwow! that’s cool
javajigsaw
javajigsaw on January 25th, 2012 6:41 pmGrate…. Thanks Joe for sharing this info…
Raj Kumar Gupta on February 9th, 2012 10:45 pmU r mention here every thing but what about J2me. I want to know about J2me concept, want to do project in J2me. so kindly help me for that matter. n yr information is very nice in JAVA hope i can learn so many things with yr information n plz give me more information as per yr connivance.plz reply me
Mangesh on February 12th, 2012 10:56 amVery nice, Regarding this i have search long time, but now only i got a good post.
arivoli on February 13th, 2012 12:41 pmVery interesting post. It compared with all java version with their feature.
Java on February 15th, 2012 10:04 amHai Very very interesting ….., this blog very very help ful to me……….
Raju on February 16th, 2012 12:08 pmthank u very much sir….for providing useful information…. it is very useful…. i will be a regular reader in future
Anoop on February 20th, 2012 1:48 pmI was just curious about the naming for each release. Is this really random, or is there a method to this “random naming”
Vinya on February 20th, 2012 6:53 pmSorry, got the info from here:
Vinya on February 20th, 2012 7:05 pmhttp://java.sun.com/j2se/codenames.html
This is excellent stuff..You have provided information with good examples. Thanks :-)
Venu Gopal on February 23rd, 2012 6:18 pmThank you very much sir….for providing useful information…. it is very useful for every one….This blog very very help ful to me.
Sridhar Goranti on March 6th, 2012 10:12 amthank you joe.
each paper is very usefull.
Vikram Bammidi on March 7th, 2012 4:30 pmvery useful content for all & also nice look.
Hi Joe,information in your blog is very useful to all java developers perticularly for me.I want to know about JNDI indetail.could u please give the information and material if you have about JNDI.
Pradeep T on March 30th, 2012 5:22 pmthanks in advance.
Joe nice post.
sam_a on April 6th, 2012 6:22 pmThanx:-) Nice Post
ashoka on April 10th, 2012 4:41 pmgood info toALL. thnx
Anonymous on April 16th, 2012 11:21 pmyour site is very helpful to the students…its so nice and very user friendly..
asha jyothi on April 28th, 2012 1:06 pmso much of thanks to u..
i have a small doubt..
asha jyothi on April 28th, 2012 1:17 pmwat r the access modifiers in java..?
and plz tell me wat r the access specifiers in java?
@Asha,
for access modifiers try this
Joe on April 28th, 2012 11:01 pmvery good information joe !!!
pal on April 29th, 2012 1:20 am[...] many times have we used it till now? It is one of the most number of times compiled statement in the history of java. We fondly call it [...]
System.out.println&hellip on April 29th, 2012 7:14 pm[...] many times have we used it till now? It is one of the most number of times compiled statement in the history of java. We fondly call it SOP. If you want to dive directly to topic, jump to the first [...]
System.out.println | All &hellip on May 1st, 2012 7:49 amthanks to you this is helpfull to me
koti on May 2nd, 2012 12:04 pmThis is the first time i am reading out ur blog . if I feel any problem regarding java I would like to ask u.Thanks ! vinit saxena Kanpur
vinit saxena on May 15th, 2012 8:19 am[...] from JDK itself, in util package we have Timer and TimerTask and these were available from JDK 1.3 It is a no-nonsense, sleek and simple to use api. Comparison between this utility and Quartz would [...]
Java Timer&hellip on May 20th, 2012 6:18 pmvery interesting to see the information along with pictures
Rosemary on May 22nd, 2012 4:08 pm[...] Javadoc facility gives option for understanding the code in an external way, instead of opening the code the javadoc document can be used separately. IDE benefits using this javadoc as it is able to render information about the code as we develop. Annotations were introduced in JDK 1.5 [...]
Java Annotations&hellip on June 3rd, 2012 4:45 pm