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
Java 9 introduced these main features:
- Java Module System
- Try-with-resources
- Diamond Syntax with Inner Anonymous Classes
- Private Interface Methods
Java 10 Features:
- Garbage-Collector Interface
- Parallel Full GC for G1
- Local Variable Type Inference
- Time-Based Release Versioning
- Heap Allocation on Alternative Memory Devices
- Consolidate the JDK Forest into a Single Repository
Java 11 Features (Long Term Support):
- Java 11 (released on September 2018) includes many important and useful updates. Let’s see the new features and improvements, it brings for developers and architects.
- HTTP Client API
- Launch Single-File Programs Without Compilation
- String API Changes
- Collection.toArray(IntFunction)
- Files.readString() and Files.writeString()
- Optional.isEmpty()
Java 17 New Features
- Flexible main method
- Records
- Switch Expressions
- Text blocks
- Pattern matching for instanceof
- Sealed Classes