|
| 1 | +#[Java 24](https://openjdk.org/projects/jdk/24/) |
| 2 | +- JEP404:[Generational Shenandoah (Experimental)](https://openjdk.org/jeps/404) |
| 3 | +- JEP450:[Compact Object Headers (Experimental)](https://openjdk.org/jeps/450) |
| 4 | +- JEP472:[Prepare to Restrict the Use of JNI](https://openjdk.org/jeps/472) |
| 5 | +- JEP475:[Late Barrier Expansion for G1](https://openjdk.org/jeps/475) |
| 6 | +- JEP478:[Key Derivation Function API (Preview)](https://openjdk.org/jeps/478) |
| 7 | +- JEP479:[Remove the Windows 32-bit x86 Port](https://openjdk.org/jeps/479) |
| 8 | +- JEP483:[Ahead-of-Time Class Loading & Linking](https://openjdk.org/jeps/483) |
| 9 | +- JEP484:[Class-File API](https://openjdk.org/jeps/484) |
| 10 | +- JEP485:[Stream Gatherers](https://openjdk.org/jeps/485) |
| 11 | +- JEP486:[Permanently Disable the Security Manager](https://openjdk.org/jeps/486) |
| 12 | +- JEP487:[Scoped Values (Fourth Preview)](https://openjdk.org/jeps/487) |
| 13 | +- JEP488:[Primitive Types in Patterns, instanceof, and switch (Second Preview)](https://openjdk.org/jeps/488) |
| 14 | +- JEP489:[Vector API (Ninth Incubator)](https://openjdk.org/jeps/489) |
| 15 | +- JEP490:[ZGC: Remove the Non-Generational Mode](https://openjdk.org/jeps/490) |
| 16 | +- JEP491:[Synchronize Virtual Threads without Pinning](https://openjdk.org/jeps/491) |
| 17 | +- JEP492:[Flexible Constructor Bodies (Third Preview)](https://openjdk.org/jeps/492) |
| 18 | +- JEP493:[Linking Run-Time Images without JMODs](https://openjdk.org/jeps/493) |
| 19 | +- JEP494:[Module Import Declarations (Second Preview)](https://openjdk.org/jeps/494) |
| 20 | +- JEP495:[Simple Source Files and Instance Main Methods (Fourth Preview)](https://openjdk.org/jeps/495) |
| 21 | +- JEP496:[Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism](https://openjdk.org/jeps/496) |
| 22 | +- JEP497:[Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm](https://openjdk.org/jeps/497) |
| 23 | +- JEP498:[Warn upon Use of Memory-Access Methods in sun.misc.Unsafe](https://openjdk.org/jeps/498) |
| 24 | +- JEP499:[Structured Concurrency (Fourth Preview)](https://openjdk.org/jeps/499) |
| 25 | +- JEP501:[Deprecate the 32-bit x86 Port for Removal](https://openjdk.org/jeps/501) |
| 26 | + |
| 27 | +#[Java 23](https://openjdk.org/projects/jdk/23/) |
| 28 | +- JEP455:[Primitive Types in Patterns, instanceof, and switch (Preview)](https://openjdk.org/jeps/455) |
| 29 | +- JEP466:[Class-File API (Second Preview)](https://openjdk.org/jeps/466) |
| 30 | +- JEP467:[Markdown Documentation Comments](https://openjdk.org/jeps/467) |
| 31 | +- JEP469:[Vector API (Eighth Incubator)](https://openjdk.org/jeps/469) |
| 32 | +- JEP473:[Stream Gatherers (Second Preview)](https://openjdk.org/jeps/473) |
| 33 | +- JEP471:[Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal](https://openjdk.org/jeps/471) |
| 34 | +- JEP474:[ZGC: Generational Mode by Default](https://openjdk.org/jeps/474) |
| 35 | +- JEP476:[Module Import Declarations (Preview)](https://openjdk.org/jeps/476) |
| 36 | +- JEP477:[Implicitly Declared Classes and Instance Main Methods (Third Preview)](https://openjdk.org/jeps/477) |
| 37 | +- JEP480:[Structured Concurrency (Third Preview)](https://openjdk.org/jeps/480) |
| 38 | +- JEP481:[Scoped Values (Third Preview)](https://openjdk.org/jeps/481) |
| 39 | +- JEP482:[Flexible Constructor Bodies (Second Preview)](https://openjdk.org/jeps/482) |
| 40 | + |
| 41 | +#[Java 22](https://openjdk.org/projects/jdk/22/) |
| 42 | +- JEP423:[Region Pinning for G1](https://openjdk.org/jeps/423) |
| 43 | +- JEP447:[Statements before super(...) (Preview)](https://openjdk.org/jeps/447) |
| 44 | +- JEP454:[Foreign Function & Memory API](https://openjdk.org/jeps/454) |
| 45 | +- JEP456:[Unnamed Variables & Patterns](https://openjdk.org/jeps/456) |
| 46 | +- JEP457:[Class-File API (Preview)](https://openjdk.org/jeps/457) |
| 47 | +- JEP458:[Launch Multi-File Source-Code Programs](https://openjdk.org/jeps/458) |
| 48 | +- JEP459:[String Templates (Second Preview)](https://openjdk.org/jeps/459) |
| 49 | +- JEP460:[Vector API (Seventh Incubator)](https://openjdk.org/jeps/460) |
| 50 | +- JEP461:[Stream Gatherers (Preview)](https://openjdk.org/jeps/461) |
| 51 | +- JEP462:[Structured Concurrency (Second Preview)](https://openjdk.org/jeps/462) |
| 52 | +- JEP463:[Implicitly Declared Classes and Instance Main Methods (Second Preview)](https://openjdk.org/jeps/463) |
| 53 | +- JEP464:[Scoped Values (Second Preview)](https://openjdk.org/jeps/464) |
| 54 | + |
| 55 | +#[Java 21](https://openjdk.org/projects/jdk/21/) |
| 56 | +- JEP430:[String Templates (Preview)](https://openjdk.org/jeps/430) |
| 57 | +- JEP431:[Sequenced Collections](https://openjdk.org/jeps/431) |
| 58 | +- JEP439:[Generational ZGC](https://openjdk.org/jeps/439) |
| 59 | +- JEP440:[Record Patterns](https://openjdk.org/jeps/440) |
| 60 | +- JEP441:[Pattern Matching for switch](https://openjdk.org/jeps/441) |
| 61 | +- JEP442:[Foreign Function & Memory API (Third Preview)](https://openjdk.org/jeps/442) |
| 62 | +- JEP443:[Unnamed Patterns and Variables (Preview)](https://openjdk.org/jeps/443) |
| 63 | +- JEP444:[Virtual Threads](https://openjdk.org/jeps/444) |
| 64 | +- JEP445:[Unnamed Classes and Instance Main Methods (Preview)](https://openjdk.org/jeps/445) |
| 65 | +- JEP446:[Scoped Values (Preview)](https://openjdk.org/jeps/446) |
| 66 | +- JEP448:[Vector API (Sixth Incubator)](https://openjdk.org/jeps/448) |
| 67 | +- JEP449:[Deprecate the Windows 32-bit x86 Port for Removal](https://openjdk.org/jeps/449) |
| 68 | +- JEP451:[Prepare to Disallow the Dynamic Loading of Agents](https://openjdk.org/jeps/451) |
| 69 | +- JEP452:[Key Encapsulation Mechanism API](https://openjdk.org/jeps/452) |
| 70 | +- JEP453:[Structured Concurrency (Preview)](https://openjdk.org/jeps/453) |
| 71 | + |
| 72 | +#[Java 20](https://openjdk.org/projects/jdk/20/) |
| 73 | +- JEP429:[Scoped Values (Incubator)](https://openjdk.org/jeps/429) |
| 74 | +- JEP432:[Record Patterns (Second Preview)](https://openjdk.org/jeps/432) |
| 75 | +- JEP433:[Pattern Matching for switch (Fourth Preview)](https://openjdk.org/jeps/433) |
| 76 | +- JEP434:[Foreign Function & Memory API (Second Preview)](https://openjdk.org/jeps/434) |
| 77 | +- JEP436:[Virtual Threads (Second Preview)](https://openjdk.org/jeps/436) |
| 78 | +- JEP437:[Structured Concurrency (Second Incubator)](https://openjdk.org/jeps/437) |
| 79 | +- JEP438:[Vector API (Fifth Incubator)](https://openjdk.org/jeps/438) |
| 80 | + |
| 81 | +#[Java 19](https://openjdk.org/projects/jdk/19/) |
| 82 | +- JEP405:[Record Patterns (Preview)](https://openjdk.org/jeps/405) |
| 83 | +- JEP422:[Linux/RISC-V Port](https://openjdk.org/jeps/422) |
| 84 | +- JEP424:[Foreign Function & Memory API (Preview)](https://openjdk.org/jeps/424) |
| 85 | +- JEP425:[Virtual Threads (Preview)](https://openjdk.org/jeps/425) |
| 86 | +- JEP426:[Vector API (Fourth Incubator)](https://openjdk.org/jeps/426) |
| 87 | +- JEP427:[Pattern Matching for switch (Third Preview)](https://openjdk.org/jeps/427) |
| 88 | +- JEP428:[Structured Concurrency (Incubator)](https://openjdk.org/jeps/428) |
| 89 | + |
| 90 | +#[Java 18](https://openjdk.org/projects/jdk/18/) |
| 91 | +- JEP400:[UTF-8 by Default](https://openjdk.org/jeps/400) |
| 92 | +- JEP408:[Simple Web Server](https://openjdk.org/jeps/408) |
| 93 | +- JEP413:[Code Snippets in Java API Documentation](https://openjdk.org/jeps/413) |
| 94 | +- JEP416:[Reimplement Core Reflection with Method Handles](https://openjdk.org/jeps/416) |
| 95 | +- JEP417:[Vector API (Third Incubator)](https://openjdk.org/jeps/417) |
| 96 | +- JEP418:[Internet-Address Resolution SPI](https://openjdk.org/jeps/418) |
| 97 | +- JEP419:[Foreign Function & Memory API (Second Incubator)](https://openjdk.org/jeps/419) |
| 98 | +- JEP420:[Pattern Matching for switch (Second Preview)](https://openjdk.org/jeps/420) |
| 99 | +- JEP421:[Deprecate Finalization for Removal](https://openjdk.org/jeps/421) |
| 100 | + |
| 101 | +#[Java 17](https://openjdk.org/projects/jdk/17/) |
| 102 | +- JEP306:[Restore Always-Strict Floating-Point Semantics](https://openjdk.org/jeps/306) |
| 103 | +- JEP356:[Enhanced Pseudo-Random Number Generators](https://openjdk.org/jeps/356) |
| 104 | +- JEP382:[New macOS Rendering Pipeline](https://openjdk.org/jeps/382) |
| 105 | +- JEP391:[macOS/AArch64 Port](https://openjdk.org/jeps/391) |
| 106 | +- JEP398:[Deprecate the Applet API for Removal](https://openjdk.org/jeps/398) |
| 107 | +- JEP403:[Strongly Encapsulate JDK Internals](https://openjdk.org/jeps/403) |
| 108 | +- JEP406:[Pattern Matching for switch (Preview)](https://openjdk.org/jeps/406) |
| 109 | +- JEP407:[Remove RMI Activation](https://openjdk.org/jeps/407) |
| 110 | +- JEP409:[Sealed Classes](https://openjdk.org/jeps/409) |
| 111 | +- JEP410:[Remove the Experimental AOT and JIT Compiler](https://openjdk.org/jeps/410) |
| 112 | +- JEP411:[Deprecate the Security Manager for Removal](https://openjdk.org/jeps/411) |
| 113 | +- JEP412:[Foreign Function & Memory API (Incubator)](https://openjdk.org/jeps/412) |
| 114 | +- JEP414:[Vector API (Second Incubator)](https://openjdk.org/jeps/414) |
| 115 | +- JEP415:[Context-Specific Deserialization Filters](https://openjdk.org/jeps/415) |
| 116 | + |
| 117 | +#[Java 16](https://openjdk.org/projects/jdk/16/) |
| 118 | +- JEP338:[Vector API (Incubator)](https://openjdk.org/jeps/338) |
| 119 | +- JEP347:[Enable C++14 Language Features](https://openjdk.org/jeps/347) |
| 120 | +- JEP357:[Migrate from Mercurial to Git](https://openjdk.org/jeps/357) |
| 121 | +- JEP369:[Migrate to GitHub](https://openjdk.org/jeps/369) |
| 122 | +- JEP376:[ZGC: Concurrent Thread-Stack Processing](https://openjdk.org/jeps/376) |
| 123 | +- JEP380:[Unix-Domain Socket Channels](https://openjdk.org/jeps/380) |
| 124 | +- JEP386:[Alpine Linux Port](https://openjdk.org/jeps/386) |
| 125 | +- JEP387:[Elastic Metaspace](https://openjdk.org/jeps/387) |
| 126 | +- JEP388:[Windows/AArch64 Port](https://openjdk.org/jeps/388) |
| 127 | +- JEP389:[Foreign Linker API (Incubator)](https://openjdk.org/jeps/389) |
| 128 | +- JEP390:[Warnings for Value-Based Classes](https://openjdk.org/jeps/390) |
| 129 | +- JEP392:[Packaging Tool](https://openjdk.org/jeps/392) |
| 130 | +- JEP393:[Foreign-Memory Access API (Third Incubator)](https://openjdk.org/jeps/393) |
| 131 | +- JEP394:[Pattern Matching for instanceof](https://openjdk.org/jeps/394) |
| 132 | +- JEP395:[Records](https://openjdk.org/jeps/395) |
| 133 | +- JEP396:[Strongly Encapsulate JDK Internals by Default](https://openjdk.org/jeps/396) |
| 134 | +- JEP397:[Sealed Classes (Second Preview)](https://openjdk.org/jeps/397) |
| 135 | + |
| 136 | +#[Java 15](https://openjdk.org/projects/jdk/15/) |
| 137 | +- JEP339:[Edwards-Curve Digital Signature Algorithm (EdDSA)](https://openjdk.org/jeps/339) |
| 138 | +- JEP360:[Sealed Classes (Preview)](https://openjdk.org/jeps/360) |
| 139 | +- JEP371:[Hidden Classes](https://openjdk.org/jeps/371) |
| 140 | +- JEP372:[Remove the Nashorn JavaScript Engine](https://openjdk.org/jeps/372) |
| 141 | +- JEP373:[Reimplement the Legacy DatagramSocket API](https://openjdk.org/jeps/373) |
| 142 | +- JEP374:[Disable and Deprecate Biased Locking](https://openjdk.org/jeps/374) |
| 143 | +- JEP375:[Pattern Matching for instanceof (Second Preview)](https://openjdk.org/jeps/375) |
| 144 | +- JEP377:[ZGC: A Scalable Low-Latency Garbage Collector](https://openjdk.org/jeps/377) |
| 145 | +- JEP378:[Text Blocks](https://openjdk.org/jeps/378) |
| 146 | +- JEP379:[Shenandoah: A Low-Pause-Time Garbage Collector](https://openjdk.org/jeps/379) |
| 147 | +- JEP381:[Remove the Solaris and SPARC Ports](https://openjdk.org/jeps/381) |
| 148 | +- JEP383:[Foreign-Memory Access API (Second Incubator)](https://openjdk.org/jeps/383) |
| 149 | +- JEP384:[Records (Second Preview)](https://openjdk.org/jeps/384) |
| 150 | +- JEP385:[Deprecate RMI Activation for Removal](https://openjdk.org/jeps/385) |
| 151 | + |
| 152 | +#[Java 14](https://openjdk.org/projects/jdk/14/) |
| 153 | +- JEP305:[Pattern Matching for instanceof (Preview)](https://openjdk.org/jeps/305) |
| 154 | +- JEP343:[Packaging Tool (Incubator)](https://openjdk.org/jeps/343) |
| 155 | +- JEP345:[NUMA-Aware Memory Allocation for G1](https://openjdk.org/jeps/345) |
| 156 | +- JEP349:[JFR Event Streaming](https://openjdk.org/jeps/349) |
| 157 | +- JEP352:[Non-Volatile Mapped Byte Buffers](https://openjdk.org/jeps/352) |
| 158 | +- JEP358:[Helpful NullPointerExceptions](https://openjdk.org/jeps/358) |
| 159 | +- JEP359:[Records (Preview)](https://openjdk.org/jeps/359) |
| 160 | +- JEP361:[Switch Expressions (Standard)](https://openjdk.org/jeps/361) |
| 161 | +- JEP362:[Deprecate the Solaris and SPARC Ports](https://openjdk.org/jeps/362) |
| 162 | +- JEP363:[Remove the Concurrent Mark Sweep (CMS) Garbage Collector](https://openjdk.org/jeps/363) |
| 163 | +- JEP364:[ZGC on macOS](https://openjdk.org/jeps/364) |
| 164 | +- JEP365:[ZGC on Windows](https://openjdk.org/jeps/365) |
| 165 | +- JEP366:[Deprecate the ParallelScavenge + SerialOld GC Combination](https://openjdk.org/jeps/366) |
| 166 | +- JEP367:[Remove the Pack200 Tools and API](https://openjdk.org/jeps/367) |
| 167 | +- JEP368:[Text Blocks (Second Preview)](https://openjdk.org/jeps/368) |
| 168 | +- JEP370:[Foreign-Memory Access API (Incubator)](https://openjdk.org/jeps/370) |
| 169 | + |
| 170 | +#[Java 13](https://openjdk.org/projects/jdk/13/) |
| 171 | +- JEP350:[Dynamic CDS Archives](https://openjdk.org/jeps/350) |
| 172 | +- JEP351:[ZGC: Uncommit Unused Memory](https://openjdk.org/jeps/351) |
| 173 | +- JEP353:[Reimplement the Legacy Socket API](https://openjdk.org/jeps/353) |
| 174 | +- JEP354:[Switch Expressions (Preview)](https://openjdk.org/jeps/354) |
| 175 | +- JEP355:[Text Blocks (Preview)](https://openjdk.org/jeps/355) |
| 176 | + |
| 177 | +#[Java 12](https://openjdk.org/projects/jdk/12/) |
| 178 | +- JEP189:[Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)](https://openjdk.org/jeps/189) |
| 179 | +- JEP230:[Microbenchmark Suite](https://openjdk.org/jeps/230) |
| 180 | +- JEP325:[Switch Expressions (Preview)](https://openjdk.org/jeps/325) |
| 181 | +- JEP334:[JVM Constants API](https://openjdk.org/jeps/334) |
| 182 | +- JEP340:[One AArch64 Port, Not Two](https://openjdk.org/jeps/340) |
| 183 | +- JEP341:[Default CDS Archives](https://openjdk.org/jeps/341) |
| 184 | +- JEP344:[Abortable Mixed Collections for G1](https://openjdk.org/jeps/344) |
| 185 | +- JEP346:[Promptly Return Unused Committed Memory from G1](https://openjdk.org/jeps/346) |