#java 8 Features:
- Lambda expression
- Stream API
- Functional interface
- Default and static methods
Optional class
- Nashorn JavaScript runtime engine
- Annotation on Java Types
- Unsigned Integer Arithmetic
- Repeating annotations
- New Date and Time API
#Java 9 Features:
- Java platform module system
- Interface Private Methods - HTTP 2 Client
- JShell
- Platform and JVM Logging
- Process API Updates - Collection API Updates
- Improvements in Stream API - Multi-release JAR Files.
Multi-release JAR Files
@Deprecated Tag Changes
- Stack Walking
#Java 10 Features:
- 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
#Java 11 Features:
- HTTP Client API
- Launch Single-File Programs Without Compilation
-String API Changes
- Collection.toArray(IntFunction)
- Files.readString() and Files.writeString()
Optional.isEmpty())
#java 12 Features:
- Collectors.teeing() in Stream API
String API Changes - Files.mismatch(Path, Path)
- Compact Number Formatting Support for Unicode 11
- Switch Expressions (Preview)
#Java 13 Features:
- Text Blocks (Preview)
- Switch Expressions Enhancements (Preview)
-Reimplement the Legacy Socket API Dynamic CDS Archive
- ZGC: Uncommit Unused Memory
FileSystems.newFileSystem() Method - DOM and SAX Factories with Namespace Support
#Java 14 Features
- Pattern Matching for instanceof
- Text Blocks
-Helpful NullPointerExceptions - Records
- Switch Expressions
-Packaging Tool
- NUMA-Aware Memory Allocation for G1 - JFR Event Streaming
- Non-Volatile Mapped Byte Buffers
- Remove the Pack200 Tools and API
#Java 15 Features
- Sealed Classes and Interface
-EdDSA Algorithm
- Hidden Classes
- Pattern Matching for instanceof
- Removed Nashorn JavaScript Engine
- Reimplement the Legacy DatagramSocket API
- Records (Second Preview) - Text Blocks become a standard feature
#Java 16 Features:
- Vector API
- Enable C++14 Language Features
- Migrate from Mercurial to Git - Migrate to GitHub
- Concurrent Thread-Stack Processing Unix-Domain Socket Channels
+Alpine Linux Port - Elastic Metaspace
- Windows/AArch64 Port
#Java 17 Features:
- 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
#Java 18 Features:
- UTF-8 by Default - Simple Web Server
- Code Snippets in Java API Doc
- Reimplement Core Reflection with Method Handles
- Vector API
- Internet-Address Resolution SPI - Foreign Function & Memory API
- Pattern Matching for switch