Java Versions, Features and History

Last modified on September 7th, 2014 by Joe.

This article gives you a highlight of important features added in every major Java release. Check this article to know about Java history, I am sure you will find it interesting.

Java SE 8

Java 8 was released on 18 March 2014. The code name culture is dropped with Java 8 and so no official code name going forward from Java 8.

New features in Java SE 8

Java Version SE 7

Code named Dolphin and released on July 28, 2011.

New features in Java SE 7

Java Version SE 6

Code named Mustang and released on December 11, 2006.

New features in Java SE 6

J2SE Version 5.0

Code named Tiger and released on September 30, 2004.

New features in J2SE 5.0

J2SE Version 1.4

Code named Merlin and released on February 6, 2002 (first release under JCP).

New features in J2SE 1.4

J2SE Version 1.3

Code named Kestrel and released on May 8, 2000.

New features in J2SE 1.3

J2SE Version 1.2

Code named Playground and released on December 8, 1998.

New features in J2SE 1.2

JDK Version 1.1

Released on February 19, 1997

New features in JDK 1.1

JDK Version 1.0

Codenamed Oak and released on January 23, 1996.

Wishing you a happy new year!

Comments on "Java Versions, Features and History"

  1. Sam says:

    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?

  2. Bhaskar says:

    java nio package is there from J2SE 1.4 on-wards. What’s new about nio in J2SE 1.7

  3. Amit says:

    Very Nice Post!!

  4. PSG says:

    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.

  5. surendra8 says:

    nice share ..

  6. Anders says:

    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.

  7. vema says:

    thanks a lot nicely explained with images

  8. JavabynataraJ says:

    Hi Thanks for your valuable info.

  9. Tahir Akram says:


    Never knew the codenames. Now I will not forget.

  10. Raju S says:

    nice explanation

  11. radhika says:

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

  12. sarath says:

    very nice sir , and i want know about the details of the arrays so could me the explanation in that.

  13. Joe says:

    @Sarath refer the following link for array:

  14. josh says:

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

  15. Gaptor says:

    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.

  16. aruna says:

    Its very nice….

  17. prakash says:

    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;



  18. shashikant says:

    thanks joe………

  19. Naresh says:

    Thanks Joe….

  20. Vinya says:

    I was just curious about the naming for each release. Is this really random, or is there a method to this “random naming”

  21. Venu Gopal says:

    This is excellent stuff..You have provided information with good examples. Thanks :-)

  22. Sridhar Goranti says:

    Thank you very much sir….for providing useful information…. it is very useful for every one….This blog very very help ful to me.

  23. Vikram Bammidi says:

    thank you joe.

    each paper is very usefull.
    very useful content for all & also nice look.

  24. Pradeep T says:

    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.
    thanks in advance.

  25. sam_a says:

    Joe nice post.

  26. ashoka says:

    Thanx:-) Nice Post

  27. Anonymous says:

    good info toALL. thnx

  28. asha jyothi says:

    your site is very helpful to the students…its so nice and very user friendly..
    so much of thanks to u..

  29. asha jyothi says:

    i have a small doubt..
    wat r the access modifiers in java..?
    and plz tell me wat r the access specifiers in java?

  30. Joe says:


    for access modifiers try this

  31. pal says:

    very good information joe !!!

  32. […] 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 […]

  33. koti says:

    thanks to you this is helpfull to me

  34. vinit saxena says:

    This 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

  35. Java Timer says:

    […] 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 […]

  36. Rosemary says:

    very interesting to see the information along with pictures

  37. […] 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 […]

  38. Najarhasan Momin says:

    Nice diffrence between all jdk version

  39. Vir says:

    nice post…

  40. Arjun Sanapati says:

    Very nice post of features on each version in JAVA.

  41. ewankosayo says:

    this is bullshit

  42. Amul says:

    Informative and clear.
    Thanks Joe

  43. Deva M says:

    its very good and very usefull this information…. for all java people

  44. Anonymous says:

    i never seen explanation for java with diagrams

  45. sudha says:

    thank you joe…
    its really nice. Easy to learn in short time

  46. Vitthal Shirke says:

    nice post…

  47. Ravi says:

    Its a wonderful thought for quick ref. Kudos Joe.

  48. RajendraKumar says:

    very usefull content….thanks.

  49. Ananda says:

    Nice Blog Joe…. Thanks a lot…


  50. Anonymous says:

    Nice Blog Joe…. Thanks a lot…


  51. Govind Choudhary says:

    Really great blog.Keep it up the good work so that it can helpful for newbies like me to keep updated with the Java :)

  52. Anonymous says:

    Hi Joe,

    Great article. However, I have a suggestion. Can you create links to the features and explain them bit in detail with a code example. That should really help the readers than again ‘google’ out those features again somewhere else.

  53. Ramya says:

    Thanks Joe for the clearly segregated and well presented content.

  54. VG says:

    Quick Information on Java Versions.

    Really Nice

  55. Jagan says:

    Yeah it’s Really nice revision about History not only this topic other topics are also explained neatly.
    Thanks for this blog…

  56. tamilmcaudc says:

    very easy to understand

  57. […] Since JDK 1.5 we have got a class java.lang.ProcessBuilder which is used to create OS processes. This API is available from JDK 1.5 but key features like redirect are added in JDK 1.7. We can use this ProcessBuilder to get current thread’s environment variables as below […]

  58. Anonymous says:

    hi joe
    easily understandable your content

  59. mayur says:

    hi joe
    this is very important in my or all
    person who related to it field

  60. lalit says:

    hi joe
    really very good

  61. Anonymous says:

    very easy java language but not understanding collage student
    cerfuly you start good action

  62. Ramana Reddy says:

    I request you to explain the JavaSE7 features with examples. It would be better to understand.

  63. Raju says:

    Its really good and easy to remember the codes..
    simply superb.

  64. anand says:

    Hi Thanks for your valuable info.

  65. Bhavik says:

    Thanksss..for sharinggg..!!

  66. P K Subudhi, India says:

    You are super Joe.

    Extremely happy on your explanation…

  67. Sanjay says:

    Please confirm feature “Automatic null Handling”
    is added in Java 7 or not. I tried with some of the examples which are throwing exceptions. Thanks

  68. Prasad says:

    Its very gud explanation, it would be better for freshers like me if you can provide with some examples for each as links.

  69. praveen d says:

    nice post..

  70. praveen d says:

    yes examples are needed for better understanding

  71. Vaibhav says:

    how to increase heap size in java?

  72. SANJIV BHARTI says:

    Thanks sir. good explanation with pic .
    But sir u should also put some example

  73. Rahul Dhama says:

    Nice Man….ur blog always give a clearer picture…..wishes 2 u and ur conviction

  74. sandeep s says:

    thanks sir, giving this information but i do the project in this semister .tell me detail information of J2ME.

  75. srinvas says:


  76. Anonymous says:

    very helpful information…

    can u please send some example based on new feature in java7.

  77. Sreekanth says:

    Nice blog, thanks Joe.

  78. Sreekanth says:

    can u please send some example based on new feature in java 6 and java 7.

  79. Narendra says:

    really grt attempt …..nice collection and nice work

  80. Anonymous says:

    simply awsum…thanx

  81. chinju says:

    simply awsum….thanx

  82. Sourabh says:

    Short and informative post on Java versions.Would really impress the interviewer if your are lucky to have this question and you are gone through this blog just before it.:P

  83. Shailesh says:

    Thanks very much….
    This blog is so useful…

  84. Jaywant Patil says:

    Thanks ,I Got answer.
    This blogs is useful..

  85. unsekhable says:

    Automatic null Handling with ? is proposed in project coin but not implemented, due to some considerations like it may be overused.
    It is available in some other languages like groovy.

  86. Anonymous says:

    it is very nice as well as cool…

  87. Back to Java says:

    I am retuning to Java after a long back and was wondering if I can find difference between java 1.2 and 1.7 :-) I was skeptical if I can find the answer but your blog really helped with this. Kudos for anticipating the need for addressing this need! Many thanks!!

  88. […] underlying collection. Initially Java had Enumeration to iterate through the collections and from Java version 1.2 Iterator took its place. Java Iterator is a nice implementation of iterator design pattern allowing […]

  89. harishmathan says:

    superbbbbbbbb…..nice man mr.joe……ur blog gives
    clear cut information for us…….really now only i known about the code names ……..great work.thanks…….


    Great Job

  91. shuhaib says:

    very Informative.

  92. Anonymous says:

    you give with example more useful

  93. shampi says:

    hi thanks
    this blogs is useful

  94. Veeresh says:

    I truely appriciate for your valuable information.
    Very clearly explaide with figure and date aslo .
    It’s very exiting with this site information .
    Thanks a lot Sir. Keep it update and develope the site .

  95. Santhosh K S says:

    Hi, Very use full resource,
    Thank you verymuch

  96. krish says:

    I think you forgot Stringbuffer feature to ad into java 1.5 version

  97. krish says:

    Sorry not stringbuffer….Stringbulder is correct..

  98. Gani says:

    thank for giving good information

  99. Sanjay says:

    that help me for study

  100. […] the release of JDK 1.5, covariant types were introduced in Java. Following example source code illustrates the covariant […]

  101. Yogendera Rautela says:

    Really good one…..

  102. Maulik says:

    great article,
    very short but excellence post

  103. Jitendra Kumar Singh says:

    Nice post, Nice Explanation

  104. Kapil Agarwal says:

    Hi joe

    Thanks for your post!

    I think Automatic Null handling is not supported and hence please remove from the list as it is misleading withjava 7 features.

  105. Kapil Agarwal says:

    Hi Joe

    Just want to know that “Type Inference for Generic Instance Creation” features is same as “Diamond Syntax”? if different can you please explain what is meant by “Type Inference for Generic Instance Creation”

  106. Baskar says:

    Hi Joe, I appreciate your efforts. I always refer your blog to refer anything in java. This is very useful for me to know the updates of java. In another one month the java 8 will be released. So i am expecting the update of java 8 too.

    Thanks for the information and keep going

  107. […] These are the two options that are alive and maintained as of now and promises support for latest versions of Java. […]

  108. […] part three of exception handling tutorial, we will see about try-with-resources (ARM) introduced in Java version […]

  109. rohit uppal says:


    Thanks for your updates, please also share java 8 new features and also request you to add examples of each features or atleast for important features. Eagerly waiting for updates.


  110. Anjana says:

    Hi Joe,

    Thanks for the articles. I refer to your blogs all the time. Just wanted to confirm with you if Java Web Start was a feature in J2SE 1.4 or Java 5.


  111. Ronald says:

    The JAVA webstart had its inception from 1.4


Comments are closed for "Java Versions, Features and History".