| Generational Shenandoah | 521(25) |  |  |  |  |  |  |  |  | 
| JFR Method Timing & Tracing | 520(25) |  |  |  |  |  |  |  |  | 
| JFR Cooperative Sampling | 518(25) |  |  |  |  |  |  |  |  | 
| PEM Encodings of Cryptographic Objects | 470(25)∗ |  |  |  |  |  |  |  |  | 
| Ahead-of-Time Method Profiling | 515(25) |  |  |  |  |  |  |  |  | 
| Ahead-of-Time Command-Line Ergonomics | 514(25) |  |  |  |  |  |  |  |  | 
| JFR CPU-Time Profiling (Experimental) | 509(25) |  |  |  |  |  |  |  |  | 
| Stable Values | 502(25)∗ |  |  |  |  |  |  |  |  | 
| Deprecate & Remove the 32-bit x86 Port | 501(24) | 503(25) |  |  |  |  |  |  |  | 
| Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm | 497(24) |  |  |  |  |  |  |  |  | 
| Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism | 496(24) |  |  |  |  |  |  |  |  | 
| Linking Run-Time Images without JMODs | 493(24) |  |  |  |  |  |  |  |  | 
| Synchronize Virtual Threads without Pinning | 491(24) |  |  |  |  |  |  |  |  | 
| ZGC: Remove the Non-Generational Mode | 490(24) |  |  |  |  |  |  |  |  | 
| Ahead-of-Time Class Loading & Linking | 483(24) |  |  |  |  |  |  |  |  | 
| Key Derivation Function API | 478(24)∗ | 510(25) |  |  |  |  |  |  |  | 
| Late Barrier Expansion for G1 | 475(24) |  |  |  |  |  |  |  |  | 
| Compact Object Headers | 450(24) | 519(25) |  |  |  |  |  |  |  | 
| Generational Shenandoah (Experimental) | 404(24) |  |  |  |  |  |  |  |  | 
| Module Import Declarations | 476(23)∗ | 494(24)∗2 | 511(25) |  |  |  |  |  |  | 
| Prepare to Restrict the Use of JNI | 472(24) |  |  |  |  |  |  |  |  | 
| ZGC: Generational Mode by Default | 474(23) |  |  |  |  |  |  |  |  | 
| Deprecate & Warn upon Use the Memory-Access Methods in sun.misc.Unsafefor Removal | 471(23) | 498(24) |  |  |  |  |  |  |  | 
| Markdown Documentation Comments | 467(23) |  |  |  |  |  |  |  |  | 
| Primitive Types in Patterns, instanceof, and switch | 455(23)∗ | 488(24)∗2 | 507(25)∗3 |  |  |  |  |  |  | 
| Stream Gatherers | 461(22)∗ | 473(23)∗2 | 485(24) |  |  |  |  |  |  | 
| Launch Multi-File Source-Code Programs | 458(22) |  |  |  |  |  |  |  |  | 
| Class-File API | 457(22)∗ | 466(23)∗2 | 484(24) |  |  |  |  |  |  | 
| Flexible Constructor Bodies | 447(22)∗ | 482(23)∗2 | 492(24)∗3 | 513(25) |  |  |  |  |  | 
| Region Pinning for G1 | 423(22) |  |  |  |  |  |  |  |  | 
| Structured Concurrency | 428(19)# | 437(20)#2 | 453(21)∗ | 462(22)∗2 | 480(23)∗3 | 499(24)∗4 | 505(25)∗5 |  |  | 
| Key Encapsulation Mechanism API | 452(21) |  |  |  |  |  |  |  |  | 
| Prepare to Disallow the Dynamic Loading of Agents | 451(21) |  |  |  |  |  |  |  |  | 
| Deprecate & Remove the Windows 32-bit x86 Port | 449(21) | 479(24) |  |  |  |  |  |  |  | 
| Compact Source Files and Instance Main Methods | 445(21)∗ | 463(22)∗2 | 477(23)∗3 | 495(24)∗4 | 512(25) |  |  |  |  | 
| Unnamed Patterns and Variables | 443(21)∗ | 456(22) |  |  |  |  |  |  |  | 
| Generational ZGC | 439(21) |  |  |  |  |  |  |  |  | 
| Sequenced Collections | 431(21) |  |  |  |  |  |  |  |  | 
| String Templates | 430(21)∗ | 459(22)∗2 |  |  |  |  |  |  |  | 
| Scoped Values | 429(20)# | 446(21)∗ | 464(22)∗2 | 481(23)∗3 | 487(24)∗4 | 506(25) |  |  |  | 
| Virtual Threads | 425(19)∗ | 436(20)∗2 | 444(21) |  |  |  |  |  |  | 
| Linux/RISC-V Port | 422(19) |  |  |  |  |  |  |  |  | 
| Record Patterns | 405(19)∗ | 432(20)∗2 | 440(21) |  |  |  |  |  |  | 
| Deprecate Finalization for Removal | 421(18) |  |  |  |  |  |  |  |  | 
| Internet-Address Resolution SPI | 418(18) |  |  |  |  |  |  |  |  | 
| Reimplement Core Reflection with Method Handles | 416(18) |  |  |  |  |  |  |  |  | 
| Code Snippets in Java API Documentation | 413(18) |  |  |  |  |  |  |  |  | 
| Simple Web Server | 408(18) |  |  |  |  |  |  |  |  | 
| UTF-8 by Default | 400(18) |  |  |  |  |  |  |  |  | 
| Context-Specific Deserialization Filters | 415(17) |  |  |  |  |  |  |  |  | 
| Foreign Function & Memory API | 412(17)# | 419(18)#2 | 424(19)∗ | 434(20)∗2 | 442(21)∗3 | 454(22) |  |  |  | 
| Deprecate & Permanently Disable the Security Manager for Removal | 411(17) | 486(24) |  |  |  |  |  |  |  | 
| Remove the Experimental AOT and JIT Compiler | 410(17) |  |  |  |  |  |  |  |  | 
| Pattern Matching for switch | 406(17)∗ | 420(18)∗2 | 427(19)∗3 | 433(20)∗4 | 441(21) |  |  |  |  | 
| Strongly Encapsulate JDK Internals | 403(17) |  |  |  |  |  |  |  |  | 
| Deprecate the Applet API for Removal | 398(17) |  |  |  |  |  |  |  |  | 
| macOS/AArch64 Port | 391(17) |  |  |  |  |  |  |  |  | 
| New macOS Rendering Pipeline | 382(17) |  |  |  |  |  |  |  |  | 
| Enhanced Pseudo-Random Number Generators | 356(17) |  |  |  |  |  |  |  |  | 
| Restore Always-Strict Floating-Point Semantics | 306(17) |  |  |  |  |  |  |  |  | 
| Strongly Encapsulate JDK Internals by Default | 396(16) |  |  |  |  |  |  |  |  | 
| Warnings for Value-Based Classes | 390(16) |  |  |  |  |  |  |  |  | 
| Foreign Linker API (Incubator) | 389(16)# |  |  |  |  |  |  |  |  | 
| Windows/AArch64 Port | 388(16) |  |  |  |  |  |  |  |  | 
| Elastic Metaspace | 387(16) |  |  |  |  |  |  |  |  | 
| Alpine Linux Port | 386(16) |  |  |  |  |  |  |  |  | 
| Unix-Domain Socket Channels | 380(16) |  |  |  |  |  |  |  |  | 
| ZGC: Concurrent Thread-Stack Processing | 376(16) |  |  |  |  |  |  |  |  | 
| Migrate to GitHub | 369(16) |  |  |  |  |  |  |  |  | 
| Migrate from Mercurial to Git | 357(16) |  |  |  |  |  |  |  |  | 
| Enable C++14 Language Features | 347(16) |  |  |  |  |  |  |  |  | 
| Vector API | 338(16)# | 414(17)#2 | 417(18)#3 | 426(19)#4 | 438(20)#8 | 448(21)#6 | 460(22)#7 | 469(23)#8 |  | 
|  | 489(24)#9 | 508(25)#10 |  |  |  |  |  |  |  | 
| Deprecate & Remove RMI Activation | 385(15) | 407(17) |  |  |  |  |  |  |  | 
| Disable and Deprecate Biased Locking | 374(15) |  |  |  |  |  |  |  |  | 
| Reimplement the Legacy DatagramSocket API | 373(15) |  |  |  |  |  |  |  |  | 
| Hidden Classes | 371(15) |  |  |  |  |  |  |  |  | 
| Sealed Classes | 360(15)∗ | 397(16)∗2 | 409(17) |  |  |  |  |  |  | 
| Edwards-Curve Digital Signature Algorithm (EdDSA) | 339(15) |  |  |  |  |  |  |  |  | 
| Records | 359(14)∗ | 384(15)∗2 | 395(16) |  |  |  |  |  |  | 
| Foreign-Memory Access API | 370(14)# | 383(15)#2 | 393(16)#3 |  |  |  |  |  |  | 
| Deprecate the ParallelScavenge + SerialOld GC Combination | 366(14) |  |  |  |  |  |  |  |  | 
| Remove the Concurrent Mark Sweep (CMS) Garbage Collector | 363(14) |  |  |  |  |  |  |  |  | 
| Deprecate & Remove the Solaris and SPARC Ports | 362(14) | 381(15) |  |  |  |  |  |  |  | 
| Helpful NullPointerExceptions | 358(14) |  |  |  |  |  |  |  |  | 
| Non-Volatile Mapped Byte Buffers | 352(14) |  |  |  |  |  |  |  |  | 
| JFR Event Streaming | 349(14) |  |  |  |  |  |  |  |  | 
| NUMA-Aware Memory Allocation for G1 | 345(14) |  |  |  |  |  |  |  |  | 
| Packaging Tool | 343(14)# | 392(16) |  |  |  |  |  |  |  | 
| Pattern Matching for instanceof | 305(14)∗ | 375(15)∗2 | 394(16) |  |  |  |  |  |  | 
| Text Blocks | 355(13)∗ | 368(14)∗2 | 378(15) |  |  |  |  |  |  | 
| Reimplement the Legacy Socket API | 353(13) |  |  |  |  |  |  |  |  | 
| Dynamic CDS Archives | 350(13) |  |  |  |  |  |  |  |  | 
| Promptly Return Unused Committed Memory from G1 | 346(12) |  |  |  |  |  |  |  |  | 
| Abortable Mixed Collections for G1 | 344(12) |  |  |  |  |  |  |  |  | 
| Default CDS Archives | 341(12) |  |  |  |  |  |  |  |  | 
| One AArch64 Port, Not Two | 340(12) |  |  |  |  |  |  |  |  | 
| JVM Constants API | 334(12) |  |  |  |  |  |  |  |  | 
| Switch Expressions | 325(12)∗ | 354(13)∗2 | 361(14) |  |  |  |  |  |  | 
| Microbenchmark Suite | 230(12) |  |  |  |  |  |  |  |  | 
| Shenandoah: A Low-Pause-Time Garbage Collector | 189(12) | 379(15) |  |  |  |  |  |  |  | 
| Deprecate & Remove the Pack200 Tools and API | 336(11) | 367(14) |  |  |  |  |  |  |  | 
| Deprecate & Remove the Nashorn JavaScript Engine | 335(11) | 372(15) |  |  |  |  |  |  |  | 
| ZGC: A Scalable Low-Latency Garbage Collector | 333(11) | 351(13) | 364(14) | 365(14) | 377(15) |  |  |  |  | 
| Transport Layer Security (TLS) 1.3 | 332(11) |  |  |  |  |  |  |  |  | 
| Low-Overhead Heap Profiling | 331(11) |  |  |  |  |  |  |  |  | 
| Launch Single-File Source-Code Programs | 330(11) |  |  |  |  |  |  |  |  | 
| ChaCha20 and Poly1305 Cryptographic Algorithms | 329(11) |  |  |  |  |  |  |  |  | 
| Flight Recorder | 328(11) |  |  |  |  |  |  |  |  | 
| Unicode 10 | 327(11) |  |  |  |  |  |  |  |  | 
| Key Agreement with Curve25519 and Curve448 | 324(11) |  |  |  |  |  |  |  |  | 
| Local-Variable Syntax for Lambda Parameters | 323(11) |  |  |  |  |  |  |  |  | 
| HTTP Client API | 321(11) |  |  |  |  |  |  |  |  | 
| Remove the Java EE and CORBA Modules | 320(11) |  |  |  |  |  |  |  |  | 
| Epsilon: A No-Op Garbage Collector | 318(11) |  |  |  |  |  |  |  |  | 
| Improve Aarch64 Intrinsics | 315(11) |  |  |  |  |  |  |  |  | 
| Dynamic Class-File Constants | 309(11) |  |  |  |  |  |  |  |  | 
| Nest-Based Access Control | 181(11) |  |  |  |  |  |  |  |  | 
| Time-Based Release Versioning | 322(10) |  |  |  |  |  |  |  |  | 
| Root Certificates | 319(10) |  |  |  |  |  |  |  |  | 
| Experimental Java-Based JIT Compiler | 317(10) |  |  |  |  |  |  |  |  | 
| Heap Allocation on Alternative Memory Devices | 316(10) |  |  |  |  |  |  |  |  | 
| Additional Unicode Language-Tag Extensions | 314(10) |  |  |  |  |  |  |  |  | 
| Remove the Native-Header Generation Tool (javah) | 313(10) |  |  |  |  |  |  |  |  | 
| Thread-Local Handshakes | 312(10) |  |  |  |  |  |  |  |  | 
| Application Class-Data Sharing | 310(10) |  |  |  |  |  |  |  |  | 
| Parallel Full GC for G1 | 307(10) |  |  |  |  |  |  |  |  | 
| Garbage-Collector Interface | 304(10) |  |  |  |  |  |  |  |  | 
| Consolidate the JDK Forest into a Single Repository | 296(10) |  |  |  |  |  |  |  |  | 
| Local-Variable Type Inference | 286(10) |  |  |  |  |  |  |  |  |