Highlights of New JEPs in Java 16
- March 16, 2021
- 2939 Unique Views
- 2 min read
The JDK Enhancement Proposal (or JEP) is a community process for collecting proposals for enhancements to the OpenJDK.
Java 16, released today, incorporates the JEPs below:
| JEP | Name | Summary |
| 338 | Vector API (Incubator) | Provide an initial iteration of an incubator module, jdk.incubator.vector, to express vector computations that reliably compile at runtime to optimal vector hardware instructions on supported CPU architectures and thus achieve superior performance to equivalent scalar computations. |
| 347 | Enable C++14 Language Features | Allow the use of C++14 language features in JDK C++ source code, and give specific guidance about which of those features may be used in HotSpot code. |
| 357 | Migrate from Mercurial to Git | Migrate the OpenJDK Community's source code repositories from Mercurial (hg) to Git. |
| 369 | Migrate to GitHub | Host the OpenJDK Community's Git repositories on GitHub. In concert with JEP 357 (Migrate from Mercurial to Git), this would migrate all single-repository OpenJDK Projects to GitHub, including both JDK feature releases and JDK update releases for versions 11 and later. |
| 376 | Concurrent Thread-Stack Processing | Move ZGC thread-stack processing from safepoints to a concurrent phase. |
| 380 | Unix-Domain Socket Channels | Add Unix-domain (AF_UNIX) socket support to the socket channel and server-socket channel APIs in the java.nio.channels package. Extend the inherited channel mechanism to support Unix-domain socket channels and server socket channels. |
| 386 | Alpine Linux Port | Port the JDK to Alpine Linux, and to other Linux distributions that use musl as their primary C library, on both the x64 and AArch64 architectures, |
| 387 | Elastic Metaspace | Return unused HotSpot class-metadata (i.e., metaspace) memory to the operating system more promptly, reduce metaspace footprint, and simplify the metaspace code in order to reduce maintenance costs. |
| 388 | Windows/AArch64 Port | Port the JDK to Windows/AArch64. |
| 389 | Foreign Linker API (Incubator) | Introduce an API that offers statically-typed, pure-Java access to native code. This API, together with the Foreign-Memory API (JEP 393), will considerably simplify the otherwise error-prone process of binding to a native library. |
| 390 | Warnings for Value-Based Classes | Designate the primitive wrapper classes as value-based and deprecate their constructors for removal, prompting new deprecation warnings. Provide warnings about improper attempts to synchronize on instances of any value-based classes in the Java Platform. |
| 392 | Packaging Tool | Provide the jpackage tool, for packaging self-contained Java applications. |
| 393 | Foreign-Memory Access API (Third Incubator) | Introduce an API to allow Java programs to safely and efficiently access foreign memory outside of the Java heap. |
| 394 | Pattern Matching for instanceof | Enhance the Java programming language with pattern matching for theinstanceof operator. Pattern matching allows common logic in a program, namely the conditional extraction of components from objects, to be expressed more concisely and safely. |
| 395 | Records | Enhance the Java programming language with records, which are classes that act as transparent carriers for immutable data. Records can be thought of as nominal tuples. |
| 396 | Strongly Encapsulate JDK Internals by Default | Strongly encapsulate all internal elements of the JDK by default, except for critical internal APIs such as sun.misc.Unsafe. Allow end users to choose the relaxed strong encapsulation that has been the default since JDK 9. |
| 397 | Sealed Classes (Second Preview) | Enhance the Java programming language with sealed classes and interfaces. Sealed classes and interfaces restrict which other classes or interfaces may extend or implement them. |
Tip: For a full list of fixes in Java 16, go here on Foojay.io.
Don’t Forget to Share This Post!
Comments (0)
No comments yet. Be the first.