JEPs in JDK 21 integrated since JDK 17

Here are all of the JEPs integrated since JDK 17, which was the previous long-term-support (LTS) release from most vendors. Preview and Incubator JEPs that were superseded by later JEPs in JDKs 18 through 21 are not included. The release in which a JEP was integrated is shown in parentheses after the JEP’s title.

Additions

HotSpot JVM
422:  Linux/RISC-V Port (19)
Garbage Collectors
439:  Generational ZGC (21)
Serviceability
451:  Prepare to Disallow the Dynamic Loading of Agents (21)
Language
441:  Pattern Matching for switch (21)
440:  Record Patterns (21)
Libraries
444:  Virtual Threads (21)
Collections
431:  Sequenced Collections (21)
Cryptography
452:  Key Encapsulation Mechanism API (21)
I/O
400:  UTF-8 by Default (18)
Networking
418:  Internet-Address Resolution SPI (18)
408:  Simple Web Server (18)
Reflection & Method Handles
416:  Reimplement Core Reflection with Method Handles (18)
Tools
JavaDoc
413:  Code Snippets in Java API Documentation (18)

Preview & Incubating

Language
430:  String Templates (Preview) (21)
445:  Unnamed Classes and Instance Main Methods (Preview) (21)
443:  Unnamed Patterns and Variables (Preview) (21)
Libraries
442:  Foreign Function & Memory API (Third Preview) (21)
446:  Scoped Values (Preview) (21)
453:  Structured Concurrency (Preview) (21)
448:  Vector API (Sixth Incubator) (21)

Deprecations

HotSpot JVM
449:  Deprecate the Windows 32-bit x86 Port for Removal (21)
Libraries
421:  Deprecate Finalization for Removal (18)