I make tools for understanding the Java Virtual Machine. Please support my work by sponsoring me on GitHub. Thank you!

# OpenJDK Project JEPs (JDK Enhancement Proposals)

Built using JEPMap by @chriswhocodes. Last updated: 2023-04-04
The algorithm for generating this page is:

1. Parse the JEP pages at https://openjdk.java.net/jeps
2. For each Project listed at https://openjdk.java.net/projects/
   1. Parse the project page and wiki page looking for JEP URLs
   2. Check if the JEP page discussion mailing list name matches a Project
   3. Check if the JEP page text links to a Project
   4. Map JEP 'Release' tag back to a JDK (technically a JDK is not a Project but I think it's useful to list the JEPs targeted to a JDK)
   5. Remove mappings found in the banlist

Autogeneration can produce false positives! Please report issues at https://github.com/chriswhocodes/JEPMap/issues
Amber
Code Tools
Graal
Graphics Rasterizer
JDK7
JDK8
JDK9
JDK10
JDK11
JDK12
JDK13
JDK14
JDK15
JDK16
JDK17
JDK18
JDK19
JDK20
Jigsaw
Kulla
Lambda
Lanai
Locale Enhancement
Loom
Memory Model Update
Multi-Language VM
Nashorn
New I/O
OpenJFX
Panama
Port: AArch32
Port: AArch64
Port: PowerPC/AIX
Port: RISC-V
Port: s390x
Portola
Shenandoah
Skara
Tiered Attribution
Type Annotations
Valhalla
Verona
ZGC

## Amber

The goal of Project Amber is to explore and incubate smaller, productivity-oriented Java language features that have been accepted as candidate JEPs in the OpenJDK JEP Process. This Project is sponsored by the Compiler Group.

### JEPs

JEP 286: Local-Variable Type Inference
[Release: 10] [Status: Closed / Delivered] [Updated: 2022/09/28]
JEP 301: Enhanced Enums
[Status: Closed / Withdrawn] [Updated: 2020/09/29]
JEP 302: Lambda Leftovers
[Status: Candidate] [Updated: 2017/04/11]
JEP 305: Pattern Matching for instanceof (Preview)
[Release: 14] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 309: Dynamic Class-File Constants
[Release: 11] [Status: Closed / Delivered] [Updated: 2018/09/10]
JEP 323: Local-Variable Syntax for Lambda Parameters
[Release: 11] [Status: Closed / Delivered] [Updated: 2018/08/23]
JEP 325: Switch Expressions (Preview)
[Release: 12] [Status: Closed / Delivered] [Updated: 2022/03/11]
JEP 326: Raw String Literals (Preview)
[Status: Closed / Withdrawn] [Updated: 2020/05/01]
JEP 334: JVM Constants API
[Release: 12] [Status: Closed / Delivered] [Updated: 2022/08/02]
JEP 348: Compiler Intrinsics for Java SE APIs
[Status: Candidate] [Updated: 2023/02/10]
JEP 354: Switch Expressions (Second Preview)
[Release: 13] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 355: Text Blocks (Preview)
[Release: 13] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 359: Records (Preview)
[Release: 14] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 360: Sealed Classes (Preview)
[Release: 15] [Status: Closed / Delivered] [Updated: 2022/03/11]
JEP 361: Switch Expressions
[Release: 14] [Status: Closed / Delivered] [Updated: 2022/03/11]
JEP 368: Text Blocks (Second Preview)
[Release: 14] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 375: Pattern Matching for instanceof (Second Preview)
[Release: 15] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 378: Text Blocks
[Release: 15] [Status: Closed / Delivered] [Updated: 2020/07/30]
JEP 384: Records (Second Preview)
[Release: 15] [Status: Closed / Delivered] [Updated: 2022/03/11]
JEP 394: Pattern Matching for instanceof
[Release: 16] [Status: Closed / Delivered] [Updated: 2022/06/10]
JEP 395: Records
[Release: 16] [Status: Closed / Delivered] [Updated: 2022/02/28]
JEP 397: Sealed Classes (Second Preview)
[Release: 16] [Status: Closed / Delivered] [Updated: 2022/03/11]
JEP 405: Record Patterns (Preview)
[Release: 19] [Status: Closed / Delivered] [Updated: 2022/10/06]
JEP 406: Pattern Matching for switch (Preview)
[Release: 17] [Status: Closed / Delivered] [Updated: 2022/06/01]
JEP 409: Sealed Classes
[Release: 17] [Status: Closed / Delivered] [Updated: 2022/03/19]
JEP 420: Pattern Matching for switch (Second Preview)
[Release: 18] [Status: Closed / Delivered] [Updated: 2022/03/22]
JEP 427: Pattern Matching for switch (Third Preview)
[Release: 19] [Status: Closed / Delivered] [Updated: 2022/10/06]
JEP 430: String Templates (Preview)
[Release: 21] [Status: Proposed to Target] [Updated: 2023/03/31]
JEP 432: Record Patterns (Second Preview)
[Release: 20] [Status: Closed / Delivered] [Updated: 2023/03/02]
JEP 433: Pattern Matching for switch (Fourth Preview)
[Release: 20] [Status: Closed / Delivered] [Updated: 2023/03/21]
JEP 440: Record Patterns
[Status: Candidate] [Updated: 2023/03/17]
JEP 441: Pattern Matching for switch
[Status: Candidate] [Updated: 2023/03/17]
JEP 443: Unnamed Patterns and Variables (Preview)
[Status: Candidate] [Updated: 2023/03/21]
JEP 8209434: JEP draft: Concise Method Bodies
[Status: Draft] [Updated: 2019/03/25]
JEP 8288476: JEP draft: Primitive types in patterns, instanceof, and switch
[Status: Submitted] [Updated: 2023/03/21]
JEP 8300786: JEP draft: Statements before super()
[Status: Submitted] [Updated: 2023/03/21]

## Code Tools

The goal of this Project is to provide tools of use to developers who work on the OpenJDK code base. Such tools currently include test tools and Mercurial extensions; it is envisaged that additional tools will be added over time, after discussion on the Project's main mailing list and subject to the Project Lead's approval.

### JEPs

JEP 193: Variable Handles
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/08/17]
JEP 8249196: JEP draft: Low-level Object layout introspection methods
[Status: Draft] [Updated: 2023/01/05]

## Graal

The Graal OpenJDK project grew out of the Maxine VM project. In the context of the Maxine VM, Graal demonstrated that a compiler written in Java (with all its software engineering advantages) could generate highly optimized code without compromising on compile times.

### JEPs

JEP 243: Java-Level JVM Compiler Interface
[Release: 9] [Status: Closed / Delivered] [Updated: 2019/09/16]
JEP 295: Ahead-of-Time Compilation
[Release: 9] [Status: Closed / Delivered] [Updated: 2018/10/05]
JEP 317: Experimental Java-Based JIT Compiler
[Release: 10] [Status: Closed / Delivered] [Updated: 2018/03/28]

## Graphics Rasterizer

Due to encumbrances in the 2D source code (see the 2D Graphics page for more), some of the implementation of the Java 2D API requires open source replacements.

### JEPs

JEP 265: Marlin Graphics Renderer
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/02/27]

## JDK7

The primary goal of this Project was to produce an open-source implementation of the seventh edition of the Java SE Platform, as defined by JSR 336 in the Java Community Process.

### JEPs

JEP 167: Event-Based JVM Tracing
[Release: 7u40] [Status: Closed / Delivered] [Updated: 2019/08/15]

## JDK8

The goal of this Project was to produce an open-source reference implementation of the Java SE 8 Platform Specification defined by JSR 337 in the Java Community Process.

### JEPs

JEP 101: Generalized Target-Type Inference
[Release: 8] [Status: Closed / Delivered] [Updated: 2015/02/26]
JEP 103: Parallel Array Sorting
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/08/13]
JEP 104: Type Annotations
[Release: 8] [Status: Closed / Delivered] [Updated: 2020/06/01]
JEP 105: DocTree API
[Release: 8] [Status: Closed / Delivered] [Updated: 2015/02/13]
JEP 106: Add Javadoc to javax.tools
[Release: 8] [Status: Closed / Delivered] [Updated: 2015/02/13]
JEP 107: Bulk Data Operations for Collections
[Release: 8] [Status: Closed / Delivered] [Updated: 2014/07/10]
JEP 109: Enhance Core Libraries with Lambda
[Release: 8] [Status: Closed / Delivered] [Updated: 2015/02/13]
JEP 112: Charset Implementation Improvements
[Release: 8] [Status: Closed / Delivered] [Updated: 2015/01/22]
JEP 113: MS-SFU Kerberos 5 Extensions
[Release: 8] [Status: Closed / Delivered] [Updated: 2015/02/12]
JEP 114: TLS Server Name Indication (SNI) Extension
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/06/14]
JEP 115: AEAD CipherSuites
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/08/11]
JEP 117: Remove the Annotation-Processing Tool (apt)
[Release: 8] [Status: Closed / Delivered] [Updated: 2014/11/03]
JEP 118: Access to Parameter Names at Runtime
[Release: 8] [Status: Closed / Delivered] [Updated: 2015/02/13]
JEP 119: javax.lang.model Implementation Backed by Core Reflection
[Release: 8] [Status: Closed / Delivered] [Updated: 2015/02/13]
JEP 120: Repeating Annotations
[Release: 8] [Status: Closed / Delivered] [Updated: 2015/02/13]
JEP 121: Stronger Algorithms for Password-Based Encryption
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/06/02]
JEP 122: Remove the Permanent Generation
[Release: 8] [Status: Closed / Delivered] [Updated: 2014/08/06]
JEP 123: Configurable Secure Random-Number Generation
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/08/11]
JEP 124: Enhance the Certificate Revocation-Checking API
[Release: 8] [Status: Closed / Delivered] [Updated: 2014/07/10]
JEP 126: Lambda Expressions & Virtual Extension Methods
[Release: 8] [Status: Closed / Delivered] [Updated: 2015/01/09]
JEP 127: Improve Locale Data Packaging and Adopt Unicode CLDR Data
[Release: 8] [Status: Closed / Delivered] [Updated: 2016/04/04]
JEP 128: Unicode BCP 47 Locale Matching
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/10/23]
JEP 129: NSA Suite B Cryptographic Algorithms
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/06/14]
JEP 130: SHA-224 Message Digests
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/06/15]
JEP 131: PKCS#11 Crypto Provider for 64-bit Windows
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/06/14]
JEP 133: Unicode 6.2
[Release: 8] [Status: Closed / Delivered] [Updated: 2019/05/13]
JEP 135: Base64 Encoding & Decoding
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/06/14]
JEP 136: Enhanced Verification Errors
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/06/14]
JEP 138: Autoconf-Based Build System
[Release: 8] [Status: Closed / Delivered] [Updated: 2015/05/11]
JEP 139: Enhance javac to Improve Build Speed
[Release: 8] [Status: Closed / Delivered] [Updated: 2015/02/13]
JEP 140: Limited doPrivileged
[Release: 8] [Status: Closed / Delivered] [Updated: 2014/07/10]
JEP 142: Reduce Cache Contention on Specified Fields
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/06/15]
JEP 147: Reduce Class Metadata Footprint
[Release: 8] [Status: Closed / Delivered] [Updated: 2014/08/08]
JEP 148: Small VM
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/06/14]
JEP 149: Reduce Core-Library Memory Usage
[Release: 8] [Status: Closed / Delivered] [Updated: 2016/02/18]
JEP 150: Date & Time API
[Release: 8] [Status: Closed / Delivered] [Updated: 2015/01/22]
JEP 153: Launch JavaFX Applications
[Release: 8] [Status: Closed / Delivered] [Updated: 2015/05/01]
JEP 155: Concurrency Updates
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/08/13]
JEP 156: G1 GC: Reduce need for full GCs
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2015/02/26]
JEP 160: Lambda-Form Representation for Method Handles
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/10/17]
JEP 161: Compact Profiles
[Release: 8] [Status: Closed / Delivered] [Updated: 2023/01/26]
JEP 162: Prepare for Modularization
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/06/14]
JEP 164: Leverage CPU Instructions for AES Cryptography
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/06/15]
JEP 166: Overhaul JKS-JCEKS-PKCS12 Keystores
[Release: 8] [Status: Closed / Delivered] [Updated: 2022/06/14]
JEP 168: Network Discovery of Manageable Java Processes
[Release: 8] [Status: Closed / Delivered] [Updated: 2016/06/07]
JEP 170: JDBC 4.2
[Release: 8] [Status: Closed / Delivered] [Updated: 2016/11/01]
JEP 171: Fence Intrinsics
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/06/14]
JEP 172: DocLint
[Release: 8] [Status: Closed / Delivered] [Updated: 2016/06/07]
JEP 173: Retire Some Rarely-Used GC Combinations
[Release: 8] [Status: Closed / Delivered] [Updated: 2018/06/19]
JEP 174: Nashorn JavaScript Engine
[Release: 8] [Status: Closed / Delivered] [Updated: 2015/02/13]
JEP 175: PowerPC/AIX Port
[Release: 8u20] [Status: Closed / Delivered] [Updated: 2017/08/17]
JEP 176: Mechanical Checking of Caller-Sensitive Methods
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/10/17]
JEP 177: Optimize java.text.DecimalFormat.format
[Release: 8] [Status: Closed / Delivered] [Updated: 2014/11/03]
JEP 178: Statically-Linked JNI Libraries
[Release: 8] [Status: Closed / Delivered] [Updated: 2016/06/07]
JEP 179: Document JDK API Support and Stability
[Release: 8] [Status: Closed / Delivered] [Updated: 2014/11/03]
JEP 180: Handle Frequent HashMap Collisions with Balanced Trees
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/06/14]
JEP 184: HTTP URL Permissions
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/06/14]
JEP 185: Restrict Fetching of External XML Resources
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/06/14]
JEP 192: String Deduplication in G1
[Release: 8u20] [Status: Closed / Delivered] [Updated: 2017/06/07]
JEP 195: Scalable Native Memory Tracking
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2015/02/27]
JEP 196: Nashorn Optimistic Typing
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2014/12/05]
JEP 202: Nashorn Class Filter
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2017/05/17]
JEP 203: Nashorn: Lexically-Scoped Variable & Constant Declarations
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2017/05/17]
JEP 204: JavaFX Accessibility
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2016/06/07]
JEP 205: New Controls for JavaFX
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2015/03/03]
JEP 206: Modernize the JavaFX Media Stack on Mac OS X
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2015/02/26]
JEP 207: Leverage CPU Instructions to Improve SHA Performance on SPARC
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2014/10/06]
JEP 208: Java Packager Improvements
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2015/02/26]
JEP 209: JavaFX Scene Builder Update
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2014/10/01]
JEP 210: LambdaForm Reduction and Caching
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2015/02/27]
JEP 239: Update JavaFX/WebView to Newer Version of WebKit
[Release: 8u60] [Status: Closed / Delivered] [Updated: 2016/08/24]
JEP 242: JVM Trace Events for Failed Allocations
[Release: 8u60] [Status: Closed / Delivered] [Updated: 2015/06/25]

## JDK9

The goal of this Project was to produce an open-source reference implementation of the Java SE 9 Platform as defined by JSR 379 in the Java Community Process.

### JEPs

JEP 102: Process API Updates
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/03/09]
JEP 110: HTTP/2 Client (Incubator)
[Release: 9] [Status: Closed / Delivered] [Updated: 2022/05/31]
JEP 143: Improve Contended Locking
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/03/06]
JEP 158: Unified JVM Logging
[Release: 9] [Status: Closed / Delivered] [Updated: 2022/10/05]
JEP 165: Compiler Control
[Release: 9] [Status: Closed / Delivered] [Updated: 2020/03/24]
JEP 193: Variable Handles
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/08/17]
JEP 197: Segmented Code Cache
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/04/28]
JEP 199: Smart Java Compilation, Phase Two
[Release: 9] [Status: Closed / Delivered] [Updated: 2016/07/12]
JEP 200: The Modular JDK
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/09/21]
JEP 201: Modular Source Code
[Release: 9] [Status: Closed / Delivered] [Updated: 2020/12/07]
JEP 211: Elide Deprecation Warnings on Import Statements
[Release: 9] [Status: Closed / Delivered] [Updated: 2021/03/20]
JEP 212: Resolve Lint and Doclint Warnings
[Release: 9] [Status: Closed / Delivered] [Updated: 2021/03/02]
JEP 213: Milling Project Coin
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/03/09]
JEP 214: Remove GC Combinations Deprecated in JDK 8
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/01/25]
JEP 215: Tiered Attribution for javac
[Release: 9] [Status: Closed / Delivered] [Updated: 2016/07/12]
JEP 216: Process Import Statements Correctly
[Release: 9] [Status: Closed / Delivered] [Updated: 2016/07/12]
JEP 217: Annotations Pipeline 2.0
[Release: 9] [Status: Closed / Delivered] [Updated: 2016/07/12]
JEP 219: Datagram Transport Layer Security (DTLS)
[Release: 9] [Status: Closed / Delivered] [Updated: 2021/07/15]
JEP 220: Modular Run-Time Images
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/09/22]
JEP 221: New Doclet API
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/08/28]
JEP 222: jshell: The Java Shell (Read-Eval-Print Loop)
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/06/09]
JEP 223: New Version-String Scheme
[Release: 9] [Status: Closed / Delivered] [Updated: 2021/10/03]
JEP 224: HTML5 Javadoc
[Release: 9] [Status: Closed / Delivered] [Updated: 2018/04/13]
JEP 225: Javadoc Search
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/06/05]
JEP 226: UTF-8 Property Resource Bundles
[Release: 9] [Status: Closed / Delivered] [Updated: 2022/01/14]
JEP 227: Unicode 7.0
[Release: 9] [Status: Closed / Delivered] [Updated: 2016/12/09]
JEP 228: Add More Diagnostic Commands
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/03/07]
JEP 229: Create PKCS12 Keystores by Default
[Release: 9] [Status: Closed / Delivered] [Updated: 2018/01/11]
JEP 231: Remove Launch-Time JRE Version Selection
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/03/09]
JEP 232: Improve Secure Application Performance
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/03/10]
JEP 233: Generate Run-Time Compiler Tests Automatically
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/04/10]
JEP 235: Test Class-File Attributes Generated by javac
[Release: 9] [Status: Closed / Delivered] [Updated: 2016/10/10]
JEP 236: Parser API for Nashorn
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/05/17]
JEP 237: Linux/AArch64 Port
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/03/08]
JEP 238: Multi-Release JAR Files
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/06/22]
JEP 240: Remove the JVM TI hprof Agent
[Release: 9] [Status: Closed / Delivered] [Updated: 2016/06/07]
JEP 241: Remove the jhat Tool
[Release: 9] [Status: Closed / Delivered] [Updated: 2016/09/06]
JEP 243: Java-Level JVM Compiler Interface
[Release: 9] [Status: Closed / Delivered] [Updated: 2019/09/16]
JEP 244: TLS Application-Layer Protocol Negotiation Extension
[Release: 9] [Status: Closed / Delivered] [Updated: 2022/08/10]
JEP 245: Validate JVM Command-Line Flag Arguments
[Release: 9] [Status: Closed / Delivered] [Updated: 2018/04/23]
JEP 246: Leverage CPU Instructions for GHASH and RSA
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/03/06]
JEP 247: Compile for Older Platform Versions
[Release: 9] [Status: Closed / Delivered] [Updated: 2020/12/21]
JEP 248: Make G1 the Default Garbage Collector
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/09/12]
JEP 249: OCSP Stapling for TLS
[Release: 9] [Status: Closed / Delivered] [Updated: 2020/07/03]
JEP 250: Store Interned Strings in CDS Archives
[Release: 9] [Status: Closed / Delivered] [Updated: 2022/10/03]
JEP 251: Multi-Resolution Images
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/06/28]
JEP 252: Use CLDR Locale Data by Default
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/10/23]
JEP 253: Prepare JavaFX UI Controls & CSS APIs for Modularization
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/03/10]
JEP 254: Compact Strings
[Release: 9] [Status: Closed / Delivered] [Updated: 2022/04/11]
JEP 255: Merge Selected Xerces 2.11.0 Updates into JAXP
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/05/26]
JEP 256: BeanInfo Annotations
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/02/23]
JEP 257: Update JavaFX/Media to Newer Version of GStreamer
[Release: 9] [Status: Closed / Delivered] [Updated: 2022/11/21]
JEP 258: HarfBuzz Font-Layout Engine
[Release: 9] [Status: Closed / Delivered] [Updated: 2019/10/25]
JEP 259: Stack-Walking API
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/07/18]
JEP 260: Encapsulate Most Internal APIs
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/09/25]
JEP 261: Module System
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/09/22]
JEP 262: TIFF Image I/O
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/02/23]
JEP 263: HiDPI Graphics on Windows and Linux
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/02/23]
JEP 264: Platform Logging API and Service
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/07/24]
JEP 265: Marlin Graphics Renderer
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/02/27]
JEP 266: More Concurrency Updates
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/04/24]
JEP 267: Unicode 8.0
[Release: 9] [Status: Closed / Delivered] [Updated: 2019/05/13]
JEP 268: XML Catalogs
[Release: 9] [Status: Closed / Delivered] [Updated: 2019/04/08]
JEP 269: Convenience Factory Methods for Collections
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/06/26]
JEP 270: Reserved Stack Areas for Critical Sections
[Release: 9] [Status: Closed / Delivered] [Updated: 2023/01/24]
JEP 271: Unified GC Logging
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/06/02]
JEP 272: Platform-Specific Desktop Features
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/06/28]
JEP 273: DRBG-Based SecureRandom Implementations
[Release: 9] [Status: Closed / Delivered] [Updated: 2019/11/28]
JEP 274: Enhanced Method Handles
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/05/17]
JEP 275: Modular Java Application Packaging
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/04/27]
JEP 276: Dynamic Linking of Language-Defined Object Models
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/05/17]
JEP 277: Enhanced Deprecation
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/12/08]
JEP 278: Additional Tests for Humongous Objects in G1
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/04/10]
JEP 279: Improve Test-Failure Troubleshooting
[Release: 9] [Status: Closed / Delivered] [Updated: 2023/03/14]
JEP 280: Indify String Concatenation
[Release: 9] [Status: Closed / Delivered] [Updated: 2022/04/28]
JEP 281: HotSpot C++ Unit-Test Framework
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/04/10]
JEP 282: jlink: The Java Linker
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/05/19]
JEP 283: Enable GTK 3 on Linux
[Release: 9] [Status: Closed / Delivered] [Updated: 2018/10/12]
JEP 284: New HotSpot Build System
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/01/20]
JEP 285: Spin-Wait Hints
[Release: 9] [Status: Closed / Delivered] [Updated: 2023/01/10]
JEP 287: SHA-3 Hash Algorithms
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/03/06]
JEP 288: Disable SHA-1 Certificates
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/11/20]
JEP 289: Deprecate the Applet API
[Release: 9] [Status: Closed / Delivered] [Updated: 2020/11/10]
JEP 290: Filter Incoming Serialization Data
[Release: 9] [Status: Closed / Delivered] [Updated: 2022/08/15]
JEP 291: Deprecate the Concurrent Mark Sweep (CMS) Garbage Collector
[Release: 9] [Status: Closed / Delivered] [Updated: 2020/04/06]
JEP 292: Implement Selected ECMAScript 6 Features in Nashorn
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/03/09]
JEP 294: Linux/s390x Port
[Release: 9] [Status: Closed / Delivered] [Updated: 2019/08/13]
JEP 295: Ahead-of-Time Compilation
[Release: 9] [Status: Closed / Delivered] [Updated: 2018/10/05]
JEP 296: Consolidate the JDK Forest into a Single Repository
[Release: 10] [Status: Closed / Delivered] [Updated: 2019/11/07]
JEP 297: Unified arm32/arm64 Port
[Release: 9] [Status: Closed / Delivered] [Updated: 2022/08/11]
JEP 298: Remove Demos and Samples
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/05/08]
JEP 299: Reorganize Documentation
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/07/20]
JEP 8068562: JEP draft: javadoc tags to distinguish API, implementation, specification, and notes
[Status: Draft] [Updated: 2021/03/26]

## JDK10

JDK 10 is the open-source reference implementation of the Java SE 10 Platform as defined by JSR 383 in the Java Community Process.

### JEPs

JEP 286: Local-Variable Type Inference
[Release: 10] [Status: Closed / Delivered] [Updated: 2022/09/28]
JEP 296: Consolidate the JDK Forest into a Single Repository
[Release: 10] [Status: Closed / Delivered] [Updated: 2019/11/07]
JEP 304: Garbage Collector Interface
[Release: 10] [Status: Closed / Delivered] [Updated: 2018/04/09]
JEP 307: Parallel Full GC for G1
[Release: 10] [Status: Closed / Delivered] [Updated: 2018/03/29]
JEP 310: Application Class-Data Sharing
[Release: 10] [Status: Closed / Delivered] [Updated: 2022/10/03]
JEP 312: Thread-Local Handshakes
[Release: 10] [Status: Closed / Delivered] [Updated: 2019/08/21]
JEP 313: Remove the Native-Header Generation Tool (javah)
[Release: 10] [Status: Closed / Delivered] [Updated: 2018/01/10]
JEP 314: Additional Unicode Language-Tag Extensions
[Release: 10] [Status: Closed / Delivered] [Updated: 2018/03/06]
JEP 316: Heap Allocation on Alternative Memory Devices
[Release: 10] [Status: Closed / Delivered] [Updated: 2020/10/02]
JEP 317: Experimental Java-Based JIT Compiler
[Release: 10] [Status: Closed / Delivered] [Updated: 2018/03/28]
JEP 319: Root Certificates
[Release: 10] [Status: Closed / Delivered] [Updated: 2018/08/14]
JEP 322: Time-Based Release Versioning
[Release: 10] [Status: Closed / Delivered] [Updated: 2021/01/06]

## JDK11

JDK 11 is the open-source reference implementation of version 11 of the Java SE Platform as specified by by JSR 384 in the Java Community Process.

### JEPs

JEP 181: Nest-Based Access Control
[Release: 11] [Status: Closed / Delivered] [Updated: 2021/04/24]
JEP 309: Dynamic Class-File Constants
[Release: 11] [Status: Closed / Delivered] [Updated: 2018/09/10]
JEP 315: Improve Aarch64 Intrinsics
[Release: 11] [Status: Closed / Delivered] [Updated: 2018/09/10]
JEP 318: Epsilon: A No-Op Garbage Collector (Experimental)
[Release: 11] [Status: Closed / Delivered] [Updated: 2018/09/24]
JEP 320: Remove the Java EE and CORBA Modules
[Release: 11] [Status: Closed / Delivered] [Updated: 2019/05/23]
JEP 321: HTTP Client
[Release: 11] [Status: Closed / Delivered] [Updated: 2023/03/15]
JEP 323: Local-Variable Syntax for Lambda Parameters
[Release: 11] [Status: Closed / Delivered] [Updated: 2018/08/23]
JEP 324: Key Agreement with Curve25519 and Curve448
[Release: 11] [Status: Closed / Delivered] [Updated: 2018/09/13]
JEP 327: Unicode 10
[Release: 11] [Status: Closed / Delivered] [Updated: 2018/08/07]
JEP 328: Flight Recorder
[Release: 11] [Status: Closed / Delivered] [Updated: 2018/09/09]
JEP 329: ChaCha20 and Poly1305 Cryptographic Algorithms
[Release: 11] [Status: Closed / Delivered] [Updated: 2018/09/13]
JEP 330: Launch Single-File Source-Code Programs
[Release: 11] [Status: Closed / Delivered] [Updated: 2023/03/17]
JEP 331: Low-Overhead Heap Profiling
[Release: 11] [Status: Closed / Delivered] [Updated: 2018/09/05]
JEP 332: Transport Layer Security (TLS) 1.3
[Release: 11] [Status: Closed / Delivered] [Updated: 2018/09/17]
JEP 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)
[Release: 11] [Status: Closed / Delivered] [Updated: 2020/03/13]
JEP 335: Deprecate the Nashorn JavaScript Engine
[Release: 11] [Status: Closed / Delivered] [Updated: 2020/04/06]
JEP 336: Deprecate the Pack200 Tools and API
[Release: 11] [Status: Closed / Delivered] [Updated: 2020/02/22]

## JDK12

JDK 12 is the open-source reference implementation of version 12 of the Java SE Platform as specified by by JSR 386 in the Java Community Process.

### JEPs

JEP 189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)
[Release: 12] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 230: Microbenchmark Suite
[Release: 12] [Status: Closed / Delivered] [Updated: 2019/02/27]
JEP 325: Switch Expressions (Preview)
[Release: 12] [Status: Closed / Delivered] [Updated: 2022/03/11]
JEP 334: JVM Constants API
[Release: 12] [Status: Closed / Delivered] [Updated: 2022/08/02]
JEP 340: One AArch64 Port, Not Two
[Release: 12] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 341: Default CDS Archives
[Release: 12] [Status: Closed / Delivered] [Updated: 2019/02/21]
JEP 344: Abortable Mixed Collections for G1
[Release: 12] [Status: Closed / Delivered] [Updated: 2019/07/15]
JEP 346: Promptly Return Unused Committed Memory from G1
[Release: 12] [Status: Closed / Delivered] [Updated: 2019/01/23]

## JDK13

JDK 13 is the open-source reference implementation of version 13 of the Java SE Platform as specified by by JSR 388 in the Java Community Process.

### JEPs

JEP 350: Dynamic CDS Archives
[Release: 13] [Status: Closed / Delivered] [Updated: 2021/10/14]
JEP 351: ZGC: Uncommit Unused Memory (Experimental)
[Release: 13] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 353: Reimplement the Legacy Socket API
[Release: 13] [Status: Closed / Delivered] [Updated: 2020/09/14]
JEP 354: Switch Expressions (Second Preview)
[Release: 13] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 355: Text Blocks (Preview)
[Release: 13] [Status: Closed / Delivered] [Updated: 2021/08/28]

## JDK14

JDK 14 is the open-source reference implementation of version 14 of the Java SE Platform as specified by by JSR 389 in the Java Community Process.

### JEPs

JEP 305: Pattern Matching for instanceof (Preview)
[Release: 14] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 343: Packaging Tool (Incubator)
[Release: 14] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 345: NUMA-Aware Memory Allocation for G1
[Release: 14] [Status: Closed / Delivered] [Updated: 2020/02/27]
JEP 349: JFR Event Streaming
[Release: 14] [Status: Closed / Delivered] [Updated: 2020/02/25]
JEP 352: Non-Volatile Mapped Byte Buffers
[Release: 14] [Status: Closed / Delivered] [Updated: 2022/08/16]
JEP 358: Helpful NullPointerExceptions
[Release: 14] [Status: Closed / Delivered] [Updated: 2021/12/22]
JEP 359: Records (Preview)
[Release: 14] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 361: Switch Expressions
[Release: 14] [Status: Closed / Delivered] [Updated: 2022/03/11]
JEP 362: Deprecate the Solaris and SPARC Ports
[Release: 14] [Status: Closed / Delivered] [Updated: 2021/08/27]
JEP 363: Remove the Concurrent Mark Sweep (CMS) Garbage Collector
[Release: 14] [Status: Closed / Delivered] [Updated: 2020/06/18]
JEP 364: ZGC on macOS (Experimental)
[Release: 14] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 365: ZGC on Windows (Experimental)
[Release: 14] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 366: Deprecate the ParallelScavenge + SerialOld GC Combination
[Release: 14] [Status: Closed / Delivered] [Updated: 2020/02/28]
JEP 367: Remove the Pack200 Tools and API
[Release: 14] [Status: Closed / Delivered] [Updated: 2020/02/22]
JEP 368: Text Blocks (Second Preview)
[Release: 14] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 370: Foreign-Memory Access API (Incubator)
[Release: 14] [Status: Closed / Delivered] [Updated: 2021/08/28]

## JDK15

JDK 15 is the open-source reference implementation of version 15 of the Java SE Platform, as specified by by JSR 390 in the Java Community Process.

### JEPs

JEP 339: Edwards-Curve Digital Signature Algorithm (EdDSA)
[Release: 15] [Status: Closed / Delivered] [Updated: 2020/10/13]
JEP 360: Sealed Classes (Preview)
[Release: 15] [Status: Closed / Delivered] [Updated: 2022/03/11]
JEP 371: Hidden Classes
[Release: 15] [Status: Closed / Delivered] [Updated: 2020/10/07]
JEP 372: Remove the Nashorn JavaScript Engine
[Release: 15] [Status: Closed / Delivered] [Updated: 2020/12/15]
JEP 373: Reimplement the Legacy DatagramSocket API
[Release: 15] [Status: Closed / Delivered] [Updated: 2023/03/04]
JEP 374: Deprecate and Disable Biased Locking
[Release: 15] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 375: Pattern Matching for instanceof (Second Preview)
[Release: 15] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 377: ZGC: A Scalable Low-Latency Garbage Collector (Production)
[Release: 15] [Status: Closed / Delivered] [Updated: 2023/03/06]
JEP 378: Text Blocks
[Release: 15] [Status: Closed / Delivered] [Updated: 2020/07/30]
JEP 379: Shenandoah: A Low-Pause-Time Garbage Collector (Production)
[Release: 15] [Status: Closed / Delivered] [Updated: 2021/11/10]
JEP 381: Remove the Solaris and SPARC Ports
[Release: 15] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 383: Foreign-Memory Access API (Second Incubator)
[Release: 15] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 384: Records (Second Preview)
[Release: 15] [Status: Closed / Delivered] [Updated: 2022/03/11]
JEP 385: Deprecate RMI Activation for Removal
[Release: 15] [Status: Closed / Delivered] [Updated: 2021/08/28]

## JDK16

JDK 16 is the open-source reference implementation of version 16 of the Java SE Platform, as specified by by JSR 390 in the Java Community Process.

### JEPs

JEP 338: Vector API (Incubator)
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 347: Enable C++14 Language Features
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/09/25]
JEP 357: Migrate from Mercurial to Git
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/01/27]
JEP 376: ZGC: Concurrent Thread-Stack Processing
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/03/07]
JEP 380: Unix-Domain Socket Channels
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/06/29]
JEP 386: Alpine Linux Port
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 387: Elastic Metaspace
[Release: 16] [Status: Closed / Delivered] [Updated: 2023/02/14]
JEP 388: Windows/AArch64 Port
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 389: Foreign Linker API (Incubator)
[Release: 16] [Status: Closed / Delivered] [Updated: 2022/03/02]
JEP 390: Warnings for Value-Based Classes
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/08/30]
JEP 392: Packaging Tool
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/02/19]
JEP 393: Foreign-Memory Access API (Third Incubator)
[Release: 16] [Status: Closed / Delivered] [Updated: 2022/03/02]
JEP 394: Pattern Matching for instanceof
[Release: 16] [Status: Closed / Delivered] [Updated: 2022/06/10]
JEP 395: Records
[Release: 16] [Status: Closed / Delivered] [Updated: 2022/02/28]
JEP 396: Strongly Encapsulate JDK Internals by Default
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 397: Sealed Classes (Second Preview)
[Release: 16] [Status: Closed / Delivered] [Updated: 2022/03/11]

## JDK17

JDK 17 is the open-source reference implementation of version 17 of the Java SE Platform, as specified by by JSR 390 in the Java Community Process.

### JEPs

JEP 306: Restore Always-Strict Floating-Point Semantics
[Release: 17] [Status: Closed / Delivered] [Updated: 2021/08/02]
JEP 356: Enhanced Pseudo-Random Number Generators
[Release: 17] [Status: Closed / Delivered] [Updated: 2023/02/01]
JEP 382: New macOS Rendering Pipeline
[Release: 17] [Status: Closed / Delivered] [Updated: 2022/04/05]
JEP 391: macOS/AArch64 Port
[Release: 17] [Status: Closed / Delivered] [Updated: 2022/11/23]
JEP 398: Deprecate the Applet API for Removal
[Release: 17] [Status: Closed / Delivered] [Updated: 2021/08/09]
JEP 403: Strongly Encapsulate JDK Internals
[Release: 17] [Status: Closed / Delivered] [Updated: 2021/09/08]
JEP 406: Pattern Matching for switch (Preview)
[Release: 17] [Status: Closed / Delivered] [Updated: 2022/06/01]
JEP 407: Remove RMI Activation
[Release: 17] [Status: Closed / Delivered] [Updated: 2021/07/07]
JEP 409: Sealed Classes
[Release: 17] [Status: Closed / Delivered] [Updated: 2022/03/19]
JEP 410: Remove the Experimental AOT and JIT Compiler
[Release: 17] [Status: Closed / Delivered] [Updated: 2021/08/05]
JEP 411: Deprecate the Security Manager for Removal
[Release: 17] [Status: Closed / Delivered] [Updated: 2022/07/26]
JEP 412: Foreign Function & Memory API (Incubator)
[Release: 17] [Status: Closed / Delivered] [Updated: 2022/03/02]
JEP 414: Vector API (Second Incubator)
[Release: 17] [Status: Closed / Delivered] [Updated: 2023/02/27]
JEP 415: Context-Specific Deserialization Filters
[Release: 17] [Status: Closed / Delivered] [Updated: 2022/04/08]

## JDK18

JDK 18 is the open-source reference implementation of version 18 of the Java SE Platform, as specified by by JSR 393 in the Java Community Process.

### JEPs

JEP 400: UTF-8 by Default
[Release: 18] [Status: Closed / Delivered] [Updated: 2022/10/19]
JEP 408: Simple Web Server
[Release: 18] [Status: Closed / Delivered] [Updated: 2022/03/07]
JEP 413: Code Snippets in Java API Documentation
[Release: 18] [Status: Closed / Delivered] [Updated: 2022/02/10]
JEP 416: Reimplement Core Reflection with Method Handles
[Release: 18] [Status: Closed / Delivered] [Updated: 2022/02/09]
JEP 417: Vector API (Third Incubator)
[Release: 18] [Status: Closed / Delivered] [Updated: 2023/02/27]
JEP 418: Internet-Address Resolution SPI
[Release: 18] [Status: Closed / Delivered] [Updated: 2022/09/09]
JEP 419: Foreign Function & Memory API (Second Incubator)
[Release: 18] [Status: Closed / Delivered] [Updated: 2022/03/02]
JEP 420: Pattern Matching for switch (Second Preview)
[Release: 18] [Status: Closed / Delivered] [Updated: 2022/03/22]
JEP 421: Deprecate Finalization for Removal
[Release: 18] [Status: Closed / Delivered] [Updated: 2022/09/02]

## JDK19

JDK 19 is the open-source reference implementation of version 19 of the Java SE Platform, as specified by by JSR 394 in the Java Community Process.

### JEPs

JEP 405: Record Patterns (Preview)
[Release: 19] [Status: Closed / Delivered] [Updated: 2022/10/06]
JEP 422: Linux/RISC-V Port
[Release: 19] [Status: Closed / Delivered] [Updated: 2022/09/08]
JEP 424: Foreign Function & Memory API (Preview)
[Release: 19] [Status: Closed / Delivered] [Updated: 2022/12/14]
JEP 425: Virtual Threads (Preview)
[Release: 19] [Status: Closed / Delivered] [Updated: 2023/01/18]
JEP 426: Vector API (Fourth Incubator)
[Release: 19] [Status: Closed / Delivered] [Updated: 2023/03/01]
JEP 427: Pattern Matching for switch (Third Preview)
[Release: 19] [Status: Closed / Delivered] [Updated: 2022/10/06]
JEP 428: Structured Concurrency (Incubator)
[Release: 19] [Status: Closed / Delivered] [Updated: 2022/08/10]

## JDK20

This release is the Reference Implementation of version 20 of the Java SE Platform, as specified by JSR 395 in the Java Community Process.

### JEPs

JEP 429: Scoped Values (Incubator)
[Release: 20] [Status: Closed / Delivered] [Updated: 2023/02/28]
JEP 432: Record Patterns (Second Preview)
[Release: 20] [Status: Closed / Delivered] [Updated: 2023/03/02]
JEP 433: Pattern Matching for switch (Fourth Preview)
[Release: 20] [Status: Closed / Delivered] [Updated: 2023/03/21]
JEP 434: Foreign Function & Memory API (Second Preview)
[Release: 20] [Status: Closed / Delivered] [Updated: 2023/03/25]
JEP 436: Virtual Threads (Second Preview)
[Release: 20] [Status: Closed / Delivered] [Updated: 2023/03/02]
JEP 437: Structured Concurrency (Second Incubator)
[Release: 20] [Status: Closed / Delivered] [Updated: 2023/03/02]
JEP 438: Vector API (Fifth Incubator)
[Release: 20] [Status: Closed / Delivered] [Updated: 2023/03/13]

## Jigsaw

The primary goals of this Project were to:

- Make it easier for developers to construct and maintain libraries and large applications;
- Improve the security and maintainability of Java SE Platform Implementations in general, and the JDK in particular;
- Enable improved application performance; and
- Enable the Java SE Platform, and the JDK, to scale down for use in small computing devices and dense cloud deployments.

### JEPs

JEP 161: Compact Profiles
[Release: 8] [Status: Closed / Delivered] [Updated: 2023/01/26]
JEP 162: Prepare for Modularization
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/06/14]
JEP 200: The Modular JDK
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/09/21]
JEP 201: Modular Source Code
[Release: 9] [Status: Closed / Delivered] [Updated: 2020/12/07]
JEP 220: Modular Run-Time Images
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/09/22]
JEP 238: Multi-Release JAR Files
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/06/22]
JEP 253: Prepare JavaFX UI Controls & CSS APIs for Modularization
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/03/10]
JEP 260: Encapsulate Most Internal APIs
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/09/25]
JEP 261: Module System
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/09/22]
JEP 275: Modular Java Application Packaging
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/04/27]
JEP 282: jlink: The Java Linker
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/05/19]
JEP 293: Guidelines for JDK Command-Line Tool Options
[Status: Candidate] [Updated: 2016/07/11]
JEP 396: Strongly Encapsulate JDK Internals by Default
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 403: Strongly Encapsulate JDK Internals
[Release: 17] [Status: Closed / Delivered] [Updated: 2021/09/08]

## Kulla

The goal of this Project is to investigate the creation of a Read Evaluate Print Loop (REPL) tool for the Java programming language as described in the corresponding JEP.

### JEPs

JEP 222: jshell: The Java Shell (Read-Eval-Print Loop)
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/06/09]

## Lambda

JSR 335 (Lambda Expressions for the Java Programming Language) supports programming in a multicore environment by adding closures and related features to the Java language. The JSR has reached its Final Release; these changes to the platform are part of the umbrella JSR 337 and have been integrated into Java SE 8 (modifying the language, JVM, and library specifications).

### JEPs

JEP 101: Generalized Target-Type Inference
[Release: 8] [Status: Closed / Delivered] [Updated: 2015/02/26]
JEP 107: Bulk Data Operations for Collections
[Release: 8] [Status: Closed / Delivered] [Updated: 2014/07/10]
JEP 126: Lambda Expressions & Virtual Extension Methods
[Release: 8] [Status: Closed / Delivered] [Updated: 2015/01/09]
JEP 186: Collection Literals
[Status: Closed / Withdrawn] [Updated: 2022/06/28]

## Lanai

The goal of this Project is to implement a new graphics rendering pipeline for macOS.

### JEPs

JEP 382: New macOS Rendering Pipeline
[Release: 17] [Status: Closed / Delivered] [Updated: 2022/04/05]

## Locale Enhancement

The goal of this Project is to enhance the java.util.Locale class in order to bring the Java platform into conformance with IETF BCP47 and UTR35(CLDR/LDML). A detailed proposal may be found here.

### JEPs

JEP 314: Additional Unicode Language-Tag Extensions
[Release: 10] [Status: Closed / Delivered] [Updated: 2018/03/06]

## Loom

PLEASE NOTE! Go to the Wiki for additional and up-to-date information. (https://wiki.openjdk.java.net/display/loom)

### JEPs

JEP 353: Reimplement the Legacy Socket API
[Release: 13] [Status: Closed / Delivered] [Updated: 2020/09/14]
JEP 373: Reimplement the Legacy DatagramSocket API
[Release: 15] [Status: Closed / Delivered] [Updated: 2023/03/04]
JEP 416: Reimplement Core Reflection with Method Handles
[Release: 18] [Status: Closed / Delivered] [Updated: 2022/02/09]
JEP 425: Virtual Threads (Preview)
[Release: 19] [Status: Closed / Delivered] [Updated: 2023/01/18]
JEP 428: Structured Concurrency (Incubator)
[Release: 19] [Status: Closed / Delivered] [Updated: 2022/08/10]
JEP 429: Scoped Values (Incubator)
[Release: 20] [Status: Closed / Delivered] [Updated: 2023/02/28]
JEP 436: Virtual Threads (Second Preview)
[Release: 20] [Status: Closed / Delivered] [Updated: 2023/03/02]
JEP 437: Structured Concurrency (Second Incubator)
[Release: 20] [Status: Closed / Delivered] [Updated: 2023/03/02]
JEP 444: Virtual Threads
[Release: 21] [Status: Proposed to Target] [Updated: 2023/03/31]
JEP 8304357: JEP draft: Scoped Values (Preview)
[Status: Submitted] [Updated: 2023/03/30]

## Memory Model Update

The goal of this Project is to update the Java Memory Model, as described in JEP 188.

### JEPs

JEP 188: Java Memory Model Update
[Status: Draft] [Updated: 2016/06/07]

## Multi-Language VM

We are extending the JVM with first-class architectural support for languages other than Java, especially dynamic languages. This project will prototype a number of extensions to the JVM, so that it can run non-Java languages efficiently, with a performance level comparable to that of Java itself.

### JEPs

JEP 160: Lambda-Form Representation for Method Handles
[Release: 8] [Status: Closed / Delivered] [Updated: 2017/10/17]
JEP 169: Larval State for Value Objects
[Status: Draft] [Updated: 2021/12/09]
JEP 274: Enhanced Method Handles
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/05/17]
JEP 8158765: JEP draft: Isolated Methods
[Status: Draft] [Updated: 2018/04/16]

## Nashorn

Nashorn's goal is to implement a lightweight high-performance JavaScript runtime in Java with a native JVM. This Project intends to enable Java developers embedding of JavaScript in Java applications via JSR-223 and to develop free standing JavaScript applications using the jrunscript command-line tool.

### JEPs

JEP 174: Nashorn JavaScript Engine
[Release: 8] [Status: Closed / Delivered] [Updated: 2015/02/13]
JEP 194: Nashorn Code Persistence
[Status: Closed / Withdrawn] [Updated: 2015/01/06]
JEP 196: Nashorn Optimistic Typing
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2014/12/05]
JEP 202: Nashorn Class Filter
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2017/05/17]
JEP 203: Nashorn: Lexically-Scoped Variable & Constant Declarations
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2017/05/17]
JEP 236: Parser API for Nashorn
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/05/17]
JEP 292: Implement Selected ECMAScript 6 Features in Nashorn
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/03/09]

## New I/O

This Project's mission is to produce the implementation of the (New) New I/O APIs being defined by JSR 203 as well as related work in the JDK.

### JEPs

JEP 337: RDMA Network Sockets
[Status: Candidate] [Updated: 2020/02/12]
JEP 380: Unix-Domain Socket Channels
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/06/29]

## OpenJFX

OpenJFX is the open source home of JavaFX development. The goal of OpenJFX is to build the next-generation Java client toolkit.

### JEPs

JEP 204: JavaFX Accessibility
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2016/06/07]
JEP 205: New Controls for JavaFX
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2015/03/03]
JEP 206: Modernize the JavaFX Media Stack on Mac OS X
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2015/02/26]
JEP 208: Java Packager Improvements
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2015/02/26]
JEP 209: JavaFX Scene Builder Update
[Release: 8u40] [Status: Closed / Delivered] [Updated: 2014/10/01]
JEP 239: Update JavaFX/WebView to Newer Version of WebKit
[Release: 8u60] [Status: Closed / Delivered] [Updated: 2016/08/24]
JEP 253: Prepare JavaFX UI Controls & CSS APIs for Modularization
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/03/10]
JEP 257: Update JavaFX/Media to Newer Version of GStreamer
[Release: 9] [Status: Closed / Delivered] [Updated: 2022/11/21]
JEP 275: Modular Java Application Packaging
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/04/27]
JEP 283: Enable GTK 3 on Linux
[Release: 9] [Status: Closed / Delivered] [Updated: 2018/10/12]

## Panama

We are improving and enriching the connections between the Java virtual machine and well-defined but “foreign” (non-Java) APIs, including many interfaces commonly used by C programmers.

### JEPs

JEP 338: Vector API (Incubator)
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 370: Foreign-Memory Access API (Incubator)
[Release: 14] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 380: Unix-Domain Socket Channels
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/06/29]
JEP 383: Foreign-Memory Access API (Second Incubator)
[Release: 15] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 389: Foreign Linker API (Incubator)
[Release: 16] [Status: Closed / Delivered] [Updated: 2022/03/02]
JEP 393: Foreign-Memory Access API (Third Incubator)
[Release: 16] [Status: Closed / Delivered] [Updated: 2022/03/02]
JEP 412: Foreign Function & Memory API (Incubator)
[Release: 17] [Status: Closed / Delivered] [Updated: 2022/03/02]
JEP 414: Vector API (Second Incubator)
[Release: 17] [Status: Closed / Delivered] [Updated: 2023/02/27]
JEP 417: Vector API (Third Incubator)
[Release: 18] [Status: Closed / Delivered] [Updated: 2023/02/27]
JEP 419: Foreign Function & Memory API (Second Incubator)
[Release: 18] [Status: Closed / Delivered] [Updated: 2022/03/02]
JEP 424: Foreign Function & Memory API (Preview)
[Release: 19] [Status: Closed / Delivered] [Updated: 2022/12/14]
JEP 426: Vector API (Fourth Incubator)
[Release: 19] [Status: Closed / Delivered] [Updated: 2023/03/01]
JEP 434: Foreign Function & Memory API (Second Preview)
[Release: 20] [Status: Closed / Delivered] [Updated: 2023/03/25]
JEP 438: Vector API (Fifth Incubator)
[Release: 20] [Status: Closed / Delivered] [Updated: 2023/03/13]
JEP 442: Foreign Function & Memory API (Third Preview)
[Status: Proposed to Target] [Updated: 2023/04/03]

## Port: AArch32

The goal of this Project is to provide a full featured port of OpenJDK on the Linux/AArch32 platoform. AArch32 is the 32-bit sub-architecture within the ARMv8 architecture. The port will be fully compatible with ARMv7 and may support ARMv6 depending on community interest.

### JEPs

JEP 297: Unified arm32/arm64 Port
[Release: 9] [Status: Closed / Delivered] [Updated: 2022/08/11]

## Port: AArch64

The goal of this Project is to provide a full-featured and certified version of OpenJDK on the Linux/AArch64 platform which can be integrated into JDK 8. AArch64 is the 64-bit mode of ARMv8; it is a completely new architecture, and is not compatible with the 32-bit ARM instruction set. It is hoped that this project will eventually be able to support operating systems other than GNU/Linux, and welcomes contributors with the necessary expertise.

### JEPs

JEP 237: Linux/AArch64 Port
[Release: 9] [Status: Closed / Delivered] [Updated: 2017/03/08]
JEP 388: Windows/AArch64 Port
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 391: macOS/AArch64 Port
[Release: 17] [Status: Closed / Delivered] [Updated: 2022/11/23]

## Port: PowerPC/AIX

The goal of this project is to provide a full-featured and certifiable version of OpenJDK on the Linux/PowerPC and AIX/PowerPC platforms which can be ultimately integrated into the main OpenJDK development branches.

### JEPs

JEP 175: PowerPC/AIX Port
[Release: 8u20] [Status: Closed / Delivered] [Updated: 2017/08/17]

## Port: RISC-V

The goal of this Project is to deliver a full-featured port of OpenJDK on the Linux/RISC-V platform which may be integrated into the main OpenJDK development branch.

### JEPs

JEP 422: Linux/RISC-V Port
[Release: 19] [Status: Closed / Delivered] [Updated: 2022/09/08]

## Port: s390x

The goal of this Project is to integrate SAP's full-featured and certifiable Linux/s390x port of the OpenJDK into the main OpenJDK development branch.

### JEPs

JEP 294: Linux/s390x Port
[Release: 9] [Status: Closed / Delivered] [Updated: 2019/08/13]

## Portola

The goal of this Project is to provide a port of the JDK to the Alpine Linux distribution, and in particular the musl C library.

### JEPs

JEP 386: Alpine Linux Port
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/08/28]

## Shenandoah

Shenandoah is an ultra-low pause time garbage collector that reduces GC pause times by performing more garbage collection work concurrently with the running Java program. CMS and G1 both perform concurrent marking of live objects. Shenandoah adds concurrent compaction.

### JEPs

JEP 189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)
[Release: 12] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 404: Generational Shenandoah
[Status: Candidate] [Updated: 2023/01/18]

## Skara

The goal of this Project is to investigate alternative SCM and code review options for the JDK source code, including options based upon Git rather than Mercurial, and including options hosted by third parties.

### JEPs

JEP 357: Migrate from Mercurial to Git
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/01/27]
JEP 369: Migrate to GitHub
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/01/15]

## Tiered Attribution

The goal of this Project is to investigate an alternate architecture for the javac type-checking subsystem which is free from speculative attribution. Additional details may be found in JEP 215: Tiered Attribution for javac.

### JEPs

JEP 215: Tiered Attribution for javac
[Release: 9] [Status: Closed / Delivered] [Updated: 2016/07/12]

## Type Annotations

The goals of the Type Annotations Project were:

- Bugs in how `javac` handles type annotations are tracked in tools/javac.
- Bugs in how Core Reflection exposes type annotations are tracked in core-libs/java.lang:reflect.
- Bugs in how Annotation Processing exposes type annotations are tracked in core-libs/javax.lang.model.

### JEPs

JEP 104: Type Annotations
[Release: 8] [Status: Closed / Delivered] [Updated: 2020/06/01]

## Valhalla

Project Valhalla is augmenting the Java object model with value objects and user-defined primitives, combining the abstractions of object-oriented programming with the performance characteristics of simple primitives. These features will be complemented with changes to Java’s generics to preserve performance gains through generic APIs.

### JEPs

JEP 181: Nest-Based Access Control
[Release: 11] [Status: Closed / Delivered] [Updated: 2021/04/24]
JEP 218: Generics over Primitive Types
[Status: Candidate] [Updated: 2017/10/17]
JEP 303: Intrinsics for the LDC and INVOKEDYNAMIC Instructions
[Status: Candidate] [Updated: 2018/09/11]
JEP 309: Dynamic Class-File Constants
[Release: 11] [Status: Closed / Delivered] [Updated: 2018/09/10]
JEP 334: JVM Constants API
[Release: 12] [Status: Closed / Delivered] [Updated: 2022/08/02]
JEP 338: Vector API (Incubator)
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 371: Hidden Classes
[Release: 15] [Status: Closed / Delivered] [Updated: 2020/10/07]
JEP 390: Warnings for Value-Based Classes
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/08/30]
JEP 401: Implicitly-Initialized Value Object Storage (Preview)
[Status: Draft] [Updated: 2023/03/29]
JEP 402: Enhanced Primitive Boxing (Preview)
[Status: Draft] [Updated: 2023/03/21]
JEP 414: Vector API (Second Incubator)
[Release: 17] [Status: Closed / Delivered] [Updated: 2023/02/27]
JEP 416: Reimplement Core Reflection with Method Handles
[Release: 18] [Status: Closed / Delivered] [Updated: 2022/02/09]
JEP 417: Vector API (Third Incubator)
[Release: 18] [Status: Closed / Delivered] [Updated: 2023/02/27]
JEP 426: Vector API (Fourth Incubator)
[Release: 19] [Status: Closed / Delivered] [Updated: 2023/03/01]
JEP 8261529: JEP draft: Universal Generics (Preview)
[Status: Draft] [Updated: 2023/03/23]
JEP 8267650: JEP draft: Better-defined JVM class file validation
[Status: Draft] [Updated: 2022/09/08]
JEP 8277163: JEP draft: Value Objects (Preview)
[Status: Submitted] [Updated: 2023/03/21]

## Verona

The goal of this Project was to implement the new JDK version string as described in JEP-223. The new version-string scheme was designed to easily distinguish major, minor, and security-update releases.

### JEPs

JEP 223: New Version-String Scheme
[Release: 9] [Status: Closed / Delivered] [Updated: 2021/10/03]

## ZGC

ZGC is a scalable low-latency garbage collector capable of handling heaps ranging from 8MB to 16TB in size, with sub-millisecond max pause times.

### JEPs

JEP 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)
[Release: 11] [Status: Closed / Delivered] [Updated: 2020/03/13]
JEP 351: ZGC: Uncommit Unused Memory (Experimental)
[Release: 13] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 364: ZGC on macOS (Experimental)
[Release: 14] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 365: ZGC on Windows (Experimental)
[Release: 14] [Status: Closed / Delivered] [Updated: 2021/08/28]
JEP 376: ZGC: Concurrent Thread-Stack Processing
[Release: 16] [Status: Closed / Delivered] [Updated: 2021/03/07]
JEP 377: ZGC: A Scalable Low-Latency Garbage Collector (Production)
[Release: 15] [Status: Closed / Delivered] [Updated: 2023/03/06]