Loading...
Jaladhi Soft Technology
Java
Python
HTML
Data Base
General Knowledge
Logout
Java Version History
Home
Java
Versions
Evolution of Java
Explore key features and release dates.
Grid
List
JDK Version 1.0
JDK 1.0 is called as OAK, and it is released on 23 Januray, 1996. Codenamed OAK.
Core Language Features (Basic Java Features)
Support for Graphics (AWT Framework)
Support for Creating a Java Applet
Libraries for Input and Output
Libraries for Networking
JDK Version 1.1
JDK 1.1 is released on 19 Januray, 1997.
JDBC (Java Database connectivity)
Inner Classes
Java Beans
RMI (Remote Method Invocation)
Reflection(introspection only)
J2SE Version 1.2
J2SE 1.2 is called as playground and it is released on 8 December, 1998.
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.3
J2SE 1.3 is called as Kestrel and it is released on 8 May, 2000.
Java Sound
Jar Indexing
A huge list of enhancements in almost all the java area
JDK Version 1.4
J2SE 1.4 is called as Merlin and it is released on 6 February, 2002.
XML Processing
Java Print Service
Logging API
Java Web Start
JDBC 3.0 API
Assertions
Preferences API
Chained Exception
IPv6 Support
Regular Expressions
Image Input and Output API
JDK Version 5
J2SE 5 is called as Tiger and it is released on 30 September, 2004.
Generics
Enhanced for Loop
Autoboxing/Unboxing
Typesafe Enums
Varargs
Static Import
Metadata (Annotations)
Instrumentation
Generics
Enhanced for Loop
Autoboxing/Unboxing
Typesafe Enums
Varargs
Static Import
Metadata (Annotations)
Instrumentation
JDK Version 6
J2SE 6 is called as Mustang and it is released on 11 December, 2006.
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
JDK Version 7
J2SE 7 is called as Dolphin and it is released on 28 July, 2011.
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
JDK Version 8
LTS
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.
Lambda Expressions
Pipelines and Streams
Date and Time API
Default Methods
Type Annotations
Nashhorn JavaScript Engine
Concurrent Accumulators
Parallel operations
PermGen Error Removed
TLS SNI
JDK Version 9
Java 9 is released on September 21, 2017.
Java platform module system
Interface Private Methods
HTTP 2 Client
JShell � REPL Tool
Platform and JVM Logging
Process API Updates
Collection API Updates
Improvements in Stream API
Multi-Release JAR Files
@Deprecated Tag Changes
Stack Walking
Java Docs Updates
Miscellaneous Other Features
JDK Version 10
Java 10 is released on 20 March 2018.
Local Variable Type Inference
Time-Based Release Versioning
Garbage-Collector Interface
Parallel Full GC for G1
Heap Allocation on Alternative Memory Devices
Consolidate the JDK Forest into a Single Repository
Application Class-Data Sharing
Additional Unicode Language-Tag Extensions
Root Certificates
Experimental Java-Based JIT Compiler
Thread-Local Handshakes
Remove the Native-Header Generation Tool
New Added APIs and Options
Removed APIs and Options
JDK Version 11
LTS
Java 11 is released on September 2018.
HTTP Client API
Launch Single-File Programs Without Compilation
String API Changes
Collection.toArray(IntFunction)
Files.readString() and Files.writeString()
Optional.isEmpty()
JDK Version 12
J2SE 12 is released on March 19, 2019.
Collectors.teeing() in Stream API
String API Changes
Files.mismatch(Path, Path)
Compact Number Formatting
Support for Unicode 11
Switch Expressions
JDK Version 13
J2SE 13 is released on September 19, 2019.
Updated Switch Expressions
Include Text Blocks
Support Legacy socket API
JDK Version 14
J2SE 14 is released on March 19, 2020.
Support Event Streaming
Improved NullPointerException
Removal of the Concurrent Mark Sweep (CMS) in the garbage collector
JDK Version 15
J2SE 15 is released on September 15, 2020.
Sealed Classes
Pattern Matching for instanceof
Records
Text Blocks
Hidden Classes
Remove the Nashorn JavaScript Engine
Reimplement the Legacy DatagramSocket API
Disable and Deprecate Biased Locking
Shenandoah: A Low-Pause-Time Garbage Collector
Remove the Solaris and SPARC Ports
Foreign-Memory Access API
Deprecate RMI Activation for Removal
JDK Version 16
J2SE 16 is released on March 16, 2021.
Vector API (Incubator)
Enable C++14 Language Features
Migrate from Mercurial to Git
Migrate to GitHub
ZGC: Concurrent Thread-Stack Processing
Unix-Domain Socket Channels
Alpine Linux Port � not yet stable
Elastic Metaspace
Windows/AArch64 Port
Foreign Linker API (Incubator)
Warnings for Value-Based Classes
Packaging Tool
Foreign-Memory Access API (Third Incubator)
Pattern Matching for instanceof
Records
Strongly Encapsulate JDK Internals by Default
Sealed Classes (Second Preview)
JDK Version 17
LTS
J2SE 17 is released on September 14, 2021.
Restore Always-Strict Floating-Point Semantics
Enhanced Pseudo-Random Number Generators
New macOS Rendering Pipeline
macOS/AArch64 Port
Deprecate the Applet API for Removal
Strongly Encapsulate JDK Internals
Pattern Matching for switch (Preview)
Remove RMI Activation
Sealed Classes
Remove the Experimental AOT and JIT Compiler
Deprecate the Security Manager for Removal
Foreign Function & Memory API (Incubator)
Vector API (Second Incubator)
Context-Specific Deserialization Filters
JDK Version 18
J2SE 18 is released on March 22, 2022.
UTF-8 by Default
Simple Web Server
Code Snippets in Java API Documentation
Reimplement Core Reflection with Method Handles
Vector API (Third Incubator)
Internet-Address Resolution SPI
Foreign Function & Memory API (Second Incubator)
Pattern Matching for switch
Deprecate Finalization for Removal
JDK Version 19
J2SE 19 is released on September 20, 2022.
Record Patterns
Linux/RISC-V Port
Foreign Function & Memory API
Virtual Threads
Vector API (Fourth Incubator)
Pattern Matching for switch
Structured Concurrency (Incubator)
JDK Version 20
J2SE 20 is released on March 21, 2023.
Scoped Values (Incubator)
Record Patterns
Pattern Matching for switch
Foreign Function & Memory API
Virtual Threads
Structured Concurrency (Second Incubator)
Vector API (Fifth Incubator)
JDK Version 21
LTS
J2SE 21 is released on September 19, 2023.
String Templates
Sequenced Collections
Generational ZGC
Record Patterns
Pattern Matching for switch
Foreign Function & Memory API
Unnamed Patterns and Variables
Virtual Threads
Unnamed Classes and Instance Main Methods
Scoped Values
Vector API (Sixth Incubator)
Deprecate the Windows 32-bit x86 Port for Removal
Prepare to Disallow the Dynamic Loading of Agents
Key Encapsulation Mechanism API
Structured Concurrency
JDK Version 22
J2SE 22 is released on March 19, 2024.
Region Pinning for G1
Statements before super(...)
Foreign Function & Memory API
Unnamed Variables & Patterns
Class-File API
Launch Multi-File Source-Code Programs
String Templates
Vector API (Seventh Incubator)
Stream Gatherers
Structured Concurrency
Implicitly Declared Classes and Instance Main Methods
Scoped Values
JDK Version 23
J2SE 23 is released on September 17, 2024.
Primitive Types in Patterns, instanceof, and switch
Class-File API
Markdown Documentation Comments
Vector API (Eighth Incubator)
Stream Gatherers
Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal
ZGC: Generational Mode by Default
Module Import Declarations
Implicitly Declared Classes and Instance Main Methods
Structured Concurrency
Scoped Values
Flexible Constructor Bodies
JDK Version 24
J2SE 24 is released on March 18, 2025.
Generational Shenandoah (Experimental)
Compact Object Headers (Experimental) (formerly known as Project Lilliput)
Prepare to Restrict the Use of JNI
Late Barrier Expansion for G1
Key Derivation Function API
Remove the Windows 32-bit x86 Port
Ahead-of-Time Class Loading & Linking
Class-File API
Stream Gatherers
Permanently Disable the Security Manager
Scoped Values
Primitive Types in Patterns, instanceof, and switch
Vector API (Ninth Incubator)
ZGC: Remove the Non-Generational Mode
Synchronize Virtual Threads without Pinning
Flexible Constructor Bodies
Linking Run-Time Images without JMODs
Module Import Declarations
Simple Source Files and Instance Main Methods
Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism
Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm
Warn upon Use of Memory-Access Methods in sun.misc.Unsafe
Structured Concurrency
Deprecate the 32-bit x86 Port for Removal
JDK Version 25
J2SE 25 is released on September 16, 2025
PEM Encodings of Cryptographic Objects
Remove the 32-bit x86 Port
Structured Concurrency
Scoped Values
Primitive Types in Patterns, instanceof, and switch
Vector API (Tenth Incubator)
JFR CPU-Time Profiling (Experimental)
Key Derivation Function API
Module Import Declarations
Compact Source Files and Instance Main Methods
Flexible Constructor Bodies
Ahead-of-Time Command-Line Ergonomics
Ahead-of-Time Method Profiling
JFR Cooperative Sampling
Compact Object Headers
JFR Method Timing & Tracing
Generational Shenandoah
Previous: Declarations
Back to Dashboard
Next: JIT Compiler