JEP (Java Enhancement Proposal): JEPs are the primary process for proposing and standardizing changes to the Java platform
JSRs: Java Specification Requests
For more info please visit these web sites:
https://github.com/akullpp/awesome-java
Java 21 language specification: https://docs.oracle.com/javase/specs/jls/se21/html/index.html
Java 21 packages index: https://docs.oracle.com/en/java/javase/21/docs/api/allpackages-index.html
Generational ZGC (JEP 439): https://openjdk.org/jeps/439
Deprecate the Windows 32-bit x86 Port for Removal (JEP 449): https://openjdk.org/jeps/449
Prepare to Disallow the Dynamic Loading of Agents (JEP 451): https://openjdk.org/jeps/451
String Templates (JEP 430): https://openjdk.org/jeps/430
Record Patterns (JEP 440): https://openjdk.org/jeps/440
Pattern Matching for switch (JEP 441): https://openjdk.org/jeps/441
Unnamed Patterns and Variables (JEP 443): https://openjdk.org/jeps/443
Unnamed Classes and Instance Main Methods (JEP 445): https://openjdk.org/jeps/445
Sequenced Collections (JEP 431):https://openjdk.org/jeps/431
Foreign Function & Memory API 3 (JEP 442):https://openjdk.org/jeps/442
Virtual Threads (JEP 444): https://openjdk.org/jeps/444
Scoped Values 1 (JEP 446): https://openjdk.org/jeps/446
Vector API 6 (JEP 448): https://openjdk.org/jeps/448
Key Encapsulation Mechanism API (JEP 452): https://openjdk.org/jeps/452
Structured Concurrency 1 (JEP 453): https://openjdk.org/jeps/453
Java 20 language specification: https://docs.oracle.com/javase/specs/jls/se20/html/index.html
Record Patterns (JEP 432): https://openjdk.org/jeps/453
Pattern Matching for switch (JEP 433): https://openjdk.org/jeps/453
Scoped Values (JEP 429): https://openjdk.org/jeps/453
Foreign Function & Memory API (JEP 434): https://openjdk.org/jeps/453
Virtual Threads (JEP 436): https://openjdk.org/jeps/453
Structured Concurrency (JEP 437): https://openjdk.org/jeps/453
Vector API 5 (JEP 438): https://openjdk.org/jeps/453
Java 19 language specification: https://docs.oracle.com/javase/specs/jls/se19/html/index.html
Linux/RISC-V Port (JEP 422): https://openjdk.org/jeps/422
Record Patterns 1 (JEP 405): https://openjdk.org/jeps/405
Pattern Matching for switch 3 (JEP 427): https://openjdk.org/jeps/427
Foreign Function & Memory API 1 (JEP 424): https://openjdk.org/jeps/424
Virtual Threads 1 (JEP 425): https://openjdk.org/jeps/425
Vector API 4 (JEP 426): https://openjdk.org/jeps/426
Structured Concurrency 1 (JEP 428): https://openjdk.org/jeps/428
Java 18 language specification: https://docs.oracle.com/javase/specs/jls/se18/html/index.html
UTF-8 by Default (JEP 400): https://openjdk.org/jeps/400
Pattern Matching for switch 2 (JEP 420): https://openjdk.org/jeps/420
Reimplement Core Reflection with Method Handles (JEP 416): https://openjdk.org/jeps/416
Vector API 3 (JEP 417): https://openjdk.org/jeps/417
Internet-Address Resolution SPI (JEP 418): https://openjdk.org/jeps/418
Foreign Function & Memory API 2 (JEP 419): https://openjdk.org/jeps/419
Deprecate Finalization for Removal (JEP 421): https://openjdk.org/jeps/421
Simple Web Server (JEP 408): https://openjdk.org/jeps/408
Code Snippets in Java API Documentation (JEP 413): https://openjdk.org/jeps/413
Java 17 language specification: https://docs.oracle.com/javase/specs/jls/se17/html/index.html
New macOS Rendering Pipeline (JEP 382): https://openjdk.org/jeps/382
macOS/AArch64 Port (JEP 391): https://openjdk.org/jeps/391
Strongly Encapsulate JDK Internals (JEP 403): https://openjdk.org/jeps/403
Restore Always-Strict Floating-Point Semantics (JEP 306): https://openjdk.org/jeps/306
Pattern Matching for switch 1. Preview (JEP 406): https://openjdk.org/jeps/406
Sealed Classes (JEP 409): https://openjdk.org/jeps/409
Enhanced Pseudo-Random Number Generators (JEP 356): https://openjdk.org/jeps/356
Deprecate the Applet API for Removal (JEP 398): https://openjdk.org/jeps/398
Remove RMI Activation (JEP 407): https://openjdk.org/jeps/407
Deprecate the Security Manager for Removal (JEP 411): https://openjdk.org/jeps/411
Foreign Function & Memory API 1 (JEP 412): https://openjdk.org/jeps/412
Vector API 2 (JEP 414): https://openjdk.org/jeps/414
Remove the Experimental AOT and JIT Compiler (JEP 410): https://openjdk.org/jeps/410
Java 16 language specification: https://docs.oracle.com/javase/specs/jls/se16/html/index.html
ZGC Concurrent Thread Processing (JEP 376): https://openjdk.org/jeps/376
Alpine Linux Port (JEP 386): https://openjdk.org/jeps/386
Windows/AArch64 Port (JEP 388):https://openjdk.org/jeps/388
Strongly Encapsulate JDK Internals by Default (JEP 396): https://openjdk.org/jeps/396
Warnings for Value-Based Classes (JEP 390): https://openjdk.org/jeps/390
Pattern Matching for instanceof (JEP 394): https://openjdk.org/jeps/394
Records (JEP 395): https://openjdk.org/jeps/395
Static Members in Inner Classes
Sealed Classes 2. Preview (JEP 397): https://openjdk.org/jeps/397
Vector API 1 (JEP 338): https://openjdk.org/jeps/338
Unix-Domain Socket Channels (JEP 380): https://openjdk.org/jeps/380
Foreign Linker API 1 (JEP 389): https://openjdk.org/jeps/389
Foreign-Memory Access API 3 (JEP 393): https://openjdk.org/jeps/393
Packaging Tool (JEP 392): https://openjdk.org/jeps/392
Java 15 language specification: https://docs.oracle.com/javase/specs/jls/se15/html/index.html
Disable and Deprecate Biased Locking (JEP 374): https://openjdk.org/jeps/374
ZGC (JEP 377): https://openjdk.org/jeps/377
Shenandoah GC (JEP 379): https://openjdk.org/jeps/379
Remove the Solaris and SPARC Ports (JEP 381): https://openjdk.org/jeps/381
Sealed Classes 1 (JEP 360): https://openjdk.org/jeps/360
Pattern Matching for instanceof 2 (JEP 375): https://openjdk.org/jeps/375
Text Blocks (JEP 378): https://openjdk.org/jeps/378
Records 2 (JEP 384):
Local Interfaces and Enums 2 (JEP 384): https://openjdk.org/jeps/384
Edwards-Curve Digital Signature Algorithm (EdDSA) (JEP 339): https://openjdk.org/jeps/339
Hidden Classes (JEP 371): https://openjdk.org/jeps/371
Remove the Nashorn JavaScript Engine (JEP 372): https://openjdk.org/jeps/372
Foreign-Memory Access API 2 (JEP 383): https://openjdk.org/jeps/383
Deprecate RMI Activation for Removal (JEP 385): https://openjdk.org/jeps/385
Java 14 language specification: https://docs.oracle.com/javase/specs/jls/se14/html/index.html
NUMA-Aware Memory Allocation for G1 (JEP 345): https://openjdk.org/jeps/345
JFR Event Streaming (JEP 349): https://openjdk.org/jeps/349
Helpful NullPointerExceptions (JEP 358): https://openjdk.org/jeps/358
Deprecate the Solaris and SPARC Ports (JEP 362): https://openjdk.org/jeps/362
Remove the Concurrent Mark Sweep (CMS) Garbage Collector (JEP 363): https://openjdk.org/jeps/363
ZGC on macOS (JEP 364): https://openjdk.org/jeps/364
ZGC on Windows (JEP 365): https://openjdk.org/jeps/365
Deprecate the ParallelScavenge + SerialOld GC Combination (JEP 366): https://openjdk.org/jeps/366
Switch Expressions (JEP 361): https://openjdk.org/jeps/361
Records 1 (JEP 359): https://openjdk.org/jeps/359
Text Blocks 2 (JEP 368): https://openjdk.org/jeps/368
Pattern Matching for instanceof 1 (JEP 305): https://openjdk.org/jeps/305
Non-Volatile Mapped Byte Buffers (JEP 352): https://openjdk.org/jeps/352
Remove the Pack200 APIs (JEP 367): https://openjdk.org/jeps/367
Foreign-Memory Access API 1 (JEP 370): https://openjdk.org/jeps/370
Remove the Pack200 Tools (JEP 367): https://openjdk.org/jeps/367
Packaging Tool 1 (JEP 343): https://openjdk.org/jeps/343
Java 13 language specification: https://docs.oracle.com/javase/specs/jls/se13/html/index.html
Dynamic CDS Archives (JEP 350): https://openjdk.org/jeps/350
ZGC: Uncommit Unused Memory (JEP 351): https://openjdk.org/jeps/351
Switch Expressions 2 (JEP 354): https://openjdk.org/jeps/354
Text Blocks 1 (JEP 355): https://openjdk.org/jeps/355
Java 12 language specification:https://docs.oracle.com/javase/specs/jls/se12/html/index.html
Shenandoah GC (JEP 189): https://openjdk.org/jeps/189
Switch Expressions 1 (JEP 325): https://openjdk.org/jeps/325
JVM Constants (JEP 334): https://openjdk.org/jeps/334
Java 11 language specification: https://docs.oracle.com/javase/specs/jls/se11/html/index.html
CONSTANT_Dynamic (JEP 309): https://openjdk.org/jeps/309
Epsilon GC (JEP 318): https://openjdk.org/jeps/318
ZGC (JEP 333): https://openjdk.org/jeps/333
Nest-Based Access Control (JEP 181): https://openjdk.org/jeps/181
Low-Overhead Heap Profiling (JEP 331): https://openjdk.org/jeps/331
Improve Aarch64 Intrinsics (JEP 315): https://openjdk.org/jeps/315
Local Variable Syntax for Lambda Parameters (JEP 323): https://openjdk.org/jeps/323
HTTP Client (JEP 321): https://openjdk.org/jeps/321
Java EE and CORBA removed (JEP 320): https://openjdk.org/jeps/320
Unicode 10 Support (JEP 327): https://openjdk.org/jeps/327
Nashorn JavaScript Engine deprecated (JEP 335): https://openjdk.org/jeps/335
New Cryptographic Algorithms (JEP 324, JEP 329): https://openjdk.org/jeps/324, https://openjdk.org/jeps/329
TLS 1.3 (JEP 332): https://openjdk.org/jeps/332
Single Source File Launch (JEP 330): https://openjdk.org/jeps/330
Flight Recorder (JEP 328): https://openjdk.org/jeps/328
Pack200 deprecated (JEP 336): https://openjdk.org/jeps/336
No more frames in JavaDoc (JDK-8196202)
Java 10 language specification: https://docs.oracle.com/javase/specs/jls/se10/html/index.html
Graal VM (JEP 317): https://openjdk.org/jeps/317
GC Interface (JEP 304): https://openjdk.org/jeps/304
Parallel Full GC for G1 (JEP 307): https://openjdk.org/jeps/307
Thread-Local Handshakes (JEP 312): https://openjdk.org/jeps/312
Alternative Memory Devices (JEP 316): https://openjdk.org/jeps/316
Keyword var (JEP 286): https://openjdk.org/jeps/286
Additional Unicode Language-Tag Extensions (JEP 314): https://openjdk.org/jeps/314
javah Removed (JEP 313): https://openjdk.org/jeps/313
Java 9 language specification: https://docs.oracle.com/javase/specs/jls/se9/html/index.html
Module System (JEP 261): https://openjdk.org/jeps/261
Private Methods in Interfaces (JEP 213): https://openjdk.org/jeps/213
HTTP/2 Client 1 (JEP 110): https://openjdk.org/jeps/110
Var Handles (JEP 193): https://openjdk.org/jeps/193
Compact Strings (JEP 254): https://openjdk.org/jeps/254
Reactive Streams (JEP 266): https://openjdk.org/jeps/266
Enhanced Deprecation (JEP 277): https://openjdk.org/jeps/277
Object.finalize() deprecated (JDK-8165641)
jshell (JEP 222): https://openjdk.org/jeps/222
Multi-Release JAR Files (JEP 238): https://openjdk.org/jeps/238
Compile for Older Platform Versions (JEP 247): https://openjdk.org/jeps/247
jlink (JEP 282): https://openjdk.org/jeps/282
Java 8 language specification: https://docs.oracle.com/javase/specs/jls/se8/html/index.html
Remove Permanent Generation (JEP 122): https://openjdk.org/jeps/122
Lambda Expressions (JSR 335): https://jcp.org/en/jsr/detail?id=335
Default Methods in Interfaces (JSR 335):
Effectively Final Variables (JSR 335):
Type Use Annotations (JEP 104): https://openjdk.org/jeps/104
Repeating Annotations (JEP 120): https://openjdk.org/jeps/120
Streams (java.util.stream) (JEP 107): https://openjdk.org/jeps/107
Lambda APIs (java.util.function) (JEP 109): https://openjdk.org/jeps/109
Date Time (java.time) (JSR 310, JEP 150): https://jcp.org/en/jsr/detail?id=310, https://openjdk.org/jeps/150
Java 7 language specification: https://docs.oracle.com/javase/specs/jls/se7/html/index.html
New Opcode INVOKEDYNAMIC (JSR 292): https://jcp.org/en/jsr/detail?id=292
Switch on String (JSR 334): https://jcp.org/en/jsr/detail?id=334
Try-with (JSR 334): https://jcp.org/en/jsr/detail?id=334
Diamond Operator (JSR 334): https://jcp.org/en/jsr/detail?id=334
Binary Integer Literals (JSR 334): https://jcp.org/en/jsr/detail?id=334
Underscores in numeric literals (JSR 334): https://jcp.org/en/jsr/detail?id=334
Multi Catch (JSR 334): https://jcp.org/en/jsr/detail?id=334
Method Handles (JSR 292): https://jcp.org/en/jsr/detail?id=292
NIO.2 (java.nio.file) (JSR 203): https://jcp.org/en/jsr/detail?id=203
Java 6 language specification:
XML Digital Signatures (javax.xml.crypto.dsig) (JSR 105): https://jcp.org/en/jsr/detail?id=105
Streaming API for XML 1.0 (javax.xml.stream) (JSR 173): https://jcp.org/en/jsr/detail?id=173
Web Services Metadata (javax.jws) (JSR 181): https://jcp.org/en/jsr/detail?id=181
Java API for XML Processing 1.3 (javax.xml.*) (JSR 206): https://jcp.org/en/jsr/detail?id=206
JAXB 2.0 (javax.xml.bind) (JSR 222): https://jcp.org/en/jsr/detail?id=222
Scripting for the Java Platform (javax.script) (JSR 223): https://jcp.org/en/jsr/detail?id=223
XML-Based Web Services 2.0 (javax.xml.ws) (JSR 224): https://jcp.org/en/jsr/detail?id=224
Common Annotations (javax.annotations) (JSR 250): https://jcp.org/en/jsr/detail?id=250
Smart Card I/O (javax.smartcardio) (JSR 268): https://jcp.org/en/jsr/detail?id=268
Pluggable Annotation Processing (javax.lang.model) (JSR 269): https://jcp.org/en/jsr/detail?id=269
Java Activation Framework (javax.annotation) (JDK-6254474):
javac supports java.lang.SuppressWarnings annotation (JDK-4986256)
Java 5 language specification:
Generics (JSR 14): https://jcp.org/en/jsr/detail?id=14
Annotations (JSR 175): https://jcp.org/en/jsr/detail?id=175
Autoboxing (JSR 201): https://jcp.org/en/jsr/detail?id=201
Enums (JSR 201): https://jcp.org/en/jsr/detail?id=201
For-each Loops (JSR 201): https://jcp.org/en/jsr/detail?id=201
Static Imports (JSR 201): https://jcp.org/en/jsr/detail?id=201
Var Args (JSR 201): https://jcp.org/en/jsr/detail?id=201
Concurrency Utilities (java.util.concurrent) (JSR 166): https://jcp.org/en/jsr/detail?id=166
Keyword assert (JSR 41): https://jcp.org/en/jsr/detail?id=41
Regular Expressions (JSR 51): https://jcp.org/en/jsr/detail?id=51
Non-blocking IO (JSR 51): https://jcp.org/en/jsr/detail?id=51
Logging (JSR 47): https://jcp.org/en/jsr/detail?id=47
Preferences (JSR 10): https://jcp.org/en/jsr/detail?id=10
XML APIs (JSR 5): https://jcp.org/en/jsr/detail?id=5
XSLT (JSR 63): https://jcp.org/en/jsr/detail?id=63
HotSpot
JNDI
Sound
Java 1.2 language specification: https://javaalmanac.io/jdk/1.2/langspec.pdf
Sun JIT
Keyword strictfp
API
Swing
Collections
JIT (on Windows only by JavaSoft)
Inner Classes
Java Beans
JDBC
RMI
Reflection
Java 1.0 language specification: https://javaalmanac.io/jdk/1.0/langspec.pdf
Java 21 (LTS): https://github.com/luiscoco/Java_21-new-features-samples/tree/main
Java 20 : https://github.com/luiscoco/Java_20-new-features-samples
...
Java 8 (LTS) : https://github.com/luiscoco/Java_8-new-features-samples
Next Java versions samples will be published in the following days
