Java Versions, Features and History

01/01/2012

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 am

very nice post!
It’s a quick revise of java features.

Thank you!

Rajeev on January 2nd, 2012 6:36 am

thank 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 am

i am always appriciated ur updates…….”think hatke”

shubham on January 2nd, 2012 9:11 am

THANKU SIR FOR UR INFORMATION

PRAVEEN KUMAR PC on January 2nd, 2012 10:55 am

Thanks for update.
This 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

Bhushan on January 2nd, 2012 12:40 pm

http://www.java7developer.com/blog/
will help us to get new Features with example.

Bhushan on January 2nd, 2012 1:28 pm

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 pm

Very Nice Post!!
Thanks

Amit on January 3rd, 2012 6:22 am

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 am

nice share ..

surendra8 on January 3rd, 2012 9:58 am

Java 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.
Use OpenJDK instead.

Anders on January 4th, 2012 6:43 pm

thanks a lot nicely explained with images

vema on January 5th, 2012 10:21 am

Hi 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 pm

nice explanation

Raju S on January 5th, 2012 7:31 pm

you explain so nicely if possible please teach the java language in detail

radhika on January 10th, 2012 1:10 pm

very 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:
arrays

Joe on January 11th, 2012 12:54 pm

Its very nice.
if u can add more information then that will be more good

josh on January 17th, 2012 3:56 pm

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 am

Its very nice….

aruna on January 24th, 2012 4:24 pm

Hi 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 pm

thanks joe………

shashikant on January 25th, 2012 2:58 pm

Thanks Joe….

Naresh on January 25th, 2012 3:06 pm

wow! that’s cool

javajigsaw

javajigsaw on January 25th, 2012 6:41 pm

Grate…. Thanks Joe for sharing this info…

Raj Kumar Gupta on February 9th, 2012 10:45 pm

U 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 am

Very nice, Regarding this i have search long time, but now only i got a good post.

arivoli on February 13th, 2012 12:41 pm

Very interesting post. It compared with all java version with their feature.

Java on February 15th, 2012 10:04 am

Hai Very very interesting ….., this blog very very help ful to me……….

Raju on February 16th, 2012 12:08 pm

thank 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 pm

I 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 pm

Sorry, got the info from here:
http://java.sun.com/j2se/codenames.html

Vinya on February 20th, 2012 7:05 pm


Email:

about
I am Joe, author of this blog. I run this with loads of passion. If you are into java, you may find lot of interesting things around ...more about me. Google+
java badge
Home