general availability on 2021-03-16
JEPs new features JEP state summary /remark JEP 338: Vector API (Incubator) 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. JEP 380: Unix-Domain Socket Channels standard 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. JEP 386: Alpine Linux Port standard 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. JEP 388: Windows/AArch64 Port standard port the JDK to Windows/AArch64. The focus of this JEP is not the porting effort itself, which is mostly complete, but rather the integration of the port into the JDK main-line repository. JEP 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. JEP 390: Warnings for Value-Based Classes standard 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. JEP 392: Packaging Tool standard Provide the jpackage tool, for packaging self-contained Java applications JEP 393: Foreign-Memory Access API third incubator an API to allow Java programs to safely and efficiently access foreign memory outside of the Java heap. Applications include sharing memory across multiple processes, and serialization / deserialization of memory content by mapping files into memory (via, e.g., mmap). JEP 394: Pattern Matching for instanceof standard instanceof now saves you from explicit, verbose casts. see comments on ‘JEP 305: Pattern Matching for instanceof (Preview)’ JEP 395: Records standard a new kind of restricted class for data containers without boiler code. see comments on ‘JEP 359: Records (Preview)’ JEP 396: Strongly Encapsulate JDK Internals by Default standard Code successfully compiled with earlier releases that directly accesses internal APIs of the JDK will no longer work by default. The strong encapsulation, which has been the default since JDK 9 can be relaxed with the JVM option –illegal-access. The sun.misc package will still be exported by the jdk.unsupported module, and will still be accessible via reflection. Hacking open private fields and protected or private methods of exported java.* APIs by reflection will result in an java.lang.reflect.InaccessibleObjectException. JEP 397: Sealed Classes second preview allows the author of a class to specify which classes may extend the class. This allows for more fine grained control of inheritance hierarchies. see comments on ‘JEP 360: Sealed Classes (Preview)’ JDK internal JEP summary /remark JEP 347: Enable C++14 Language Features formally allow C++ source code changes within the JDK to take advantage of C++14 language features, and to give specific guidance about which of those features may be used in HotSpot code. JEP 357: Migrate from Mercurial to Git migrate the OpenJDK Community’s source code repositories from Mercurial (hg) to Git. JEP 376: ZGC move ZGC thread-stack processing from safepoints to a concurrent phase. JEP 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. deprecated none
...