|
| 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) |
0 commit comments