The new Java version is just around this corner of the year.
Allow to extend application class-data sharing to allow the dynamic archiving of classes at the end of Java application execution. The archived classes will include all loaded application classes and library classes that are not present in the default, base-layer CDS archive. Due to this, users will no longer need to do trial runs to create a class list for each application.
Uncommit Unused Memory:
Enhance ZGC to return unused heap memory to the operating system. It does not currently uncommit and return memory to the operating system, even when that memory has been unused for a long time. This behavior is not optimal for all types of applications and environments, especially those where memory footprint is a concern. Some examples are Container environments where resources are paid by use, Environments where an application might be idle for long periods of time and, is sharing or competing for resources with many other applications.
Reimplement the Legacy Socket API:
Replace the underlying implementation used by
java.net.ServerSocket APIs with a simpler and more modern implementation that is easy to maintain and debug. The new implementation will be easy to adapt to work with user-mode threads, a.k.a.
The switch expressions feature is being re-previewed after the initial preview in JDK 12. The syntax has been changed following community feedback, and now introduces a new keyword, yield, to handle returning values from a switch expression used in block form.
case ... :
case ... ->
Text Blocks aims to add text blocks to the Java language which were previously called multi-line strings. This feature aims to reduce some of the