Java features version-wise

In this article, we will discuss features introduced in different versions of Java or J2SE or Java SE or JDK

Below terms / abbreviation are called intermittently called to refer Java

  • JDK (Java Development Kit)
  • Java SE (Java Standard Edition)
  • J2SE (This is after successful 1.2 edition)

JDK 1.0

  • This is the first version of JDK introduced in way back in year 1996
  • In the initial years, Java was actually referred as OAK, after an OAK tree that stood outside the office of developer/inventor James Gosling
  • Through minor release, a stable version of JDK 1.0.2 is introduced by a new name called Java, which is now very popular computer masses even after 20 years
  • Release date: 26th January, 1996

JDK 1.1

  • This release is referred as Java 1
  • Release date: 19th February, 1997

New features added in JDK 1.1:

  • AWT event model
  • Inner classes
  • JavaBeans
  • JDBC (Java DataBase Connectivity)
  • RMI (Remote Method Invocation)
  • Reflection
  • JIT (Just-In-Time compiler)
  • Internalization (I18N)
  • Unicode

J2SE 1.2

  • This release is commonly referred as Java 2 and alternatively as Playground after its codename
  • Due to the 2nd edition of JDK release it is re-branded as J2SE, to distinguish it from J2ME
  • This is very significant release, as size got tripled with 1520 classes and 59 packages
  • Release date: 8th December, 1998

New features added in J2SE 1.2:

  • Collection framework
  • strictfp keyword
  • Swing graphical API
  • Sun’s JVM was equipped with a JIT compiler for the first time
  • Java plug-in

J2SE 1.3

  • This release is commonly referred as Java 3 and alternatively as Kestrel after its codename
  • Release date: 8th May, 2000

New features added in J2SE 1.3:

  • HotSpot JVm
  • RMI (actually this is modified to support CORBA)
  • JNDI (Java Naming and Directory Interface)
  • JPDA (Java Platform Debugger Architecture)
  • JavaSound
  • Synthetic Proxy classes

J2SE 1.4

  • This release is commonly referred as Java 4 and alternatively as Merlin after its codename
  • This release was first time that, it is developed under Java Community Process as JSR 59
  • Release date: 6th February, 2002

New features added in J2SE 1.4:

  • assert keyword
  • Regex (Regular Expression)
  • Exception chaining process
  • Support for IPV6 (Internet Protocol Version 6)
  • NIO (Non-blocking I/O)
  • Logging API
  • Image I/O API
  • JAXP (Integrated XML parser and XSLT processor)
  • Integrated security and cryptography extensions (JCE, JSSE, JAAS)
  • Java Web Start
  • Preferences API (java.util.prefs)

J2SE 5.0

  • This release is commonly referred as Java 5 and alternatively as Tiger after its codename
  • After this release, numbering concept totally changed and it is referred as J2SE 5.0
  • It is one of the popular version among its release for major overhaul in its features
  • This is release ensemble with major Java language features. We will list them below
  • Release date: 30th September, 2004

New features added in J2SE 5.0:

  • Auto-boxing and Un-boxing (automatic type-conversion)
  • Generics
  • Annotations (Metadata)
  • forEach loop
  • varargs
  • static imports
  • Enumerations
  • Concurrent classes (java.util.concurrent)
  • Co-variant return-type
  • Scanner classes

Java SE 6

  • This release is commonly referred as Java 6 and alternatively as Mustang after its codename
  • From here, Sun replaced J2SE with just Java SE and point notation like .0 from its actual version (i.e.; 2 is removed, actually it was continued from successful 2nd edition and also 6.0 replaced with just 6)
  • Release date: 11th December, 2006

New features added in Java SE 6:

  • Support for Scripting Language (JSR-223)
  • JAXB 2.0
  • JAX-WS (JSR-224)
  • JDBC 4.0 API
  • Java Compiler API
  • Pluggable annotation (JSR-269)
  • GC algorithm
  • Performance improvement
  • NavigableSet and NavigableMap interfaces

Java SE 7

  • This release is commonly referred as Java 7 and alternatively as Dolphin after its codename
  • Release date: 28th July, 2011

New features added in Java SE 7:

  • switch statement with String
  • ARM (Automatic Resource Management)
  • try-with-resources for ARM
  • Multi catch block (with pipe separator)
  • JVM support for dynamic languages
  • Binary integer literals
  • Numeric literals with underscore support
  • NIO 2.0
  • Simplified varargs method declaration
  • Timsort is used to sort collections and arrays of objects instead of merge sort
  • Compressed 64-bit pointers
  • Diamond operator (Improved type inference for generic instance creation)

Java SE 8

  • This release is commonly referred as Java 8 and alternatively as Spider after its codename
  • Release date: 18th March, 2014

New features added in Java SE 8:

  • Lambda expression
  • Method references
  • Functional interface
  • Static and default methods in interface
  • New date and time API
  • Streams
  • forEach method
  • Collectors
  • Project Nashorn, a JavaScript runtime which allows developers to embed JavaScript code within applications
  • Annotation on Java Types
  • Unsigned Integer Arithmetic
  • Repeating annotations
  • Statically-linked JNI libraries
  • Launch JavaFX applications
  • Remove the permanent generation

Java SE 9

  • Expected Release date: 21st September, 2017

New features added in Java SE 9:

  • Coming up

References:

Happy Java Coding !!
Happy Learning !!

Java - To print first N natural numbers
Java - Swapping two numbers without temporary variable