A Complete List of Improvements in Java Development Kit (JDK) 17 LTS

Oracle last week announced the availability of Java Development Kit (JDK) 17 as scheduled in their six-month cadence for fast-tracked release of successive versions and infusing the element of predictability in updating/upgrading the world’s most extensively used programming language. This effort made by Oracle towards a steady stream of predictable performance, security, and stability enhancements in JDK is for significantly boosting developer productivity and innovation adoption.

Related readings by Infolob:

  1. Oracle Support Rewards Incentivize Oracle Cloud Adoption

  2. Oracle Cloud is Now ‘ARM-ed’ with Ampere Altra® Servers

  3. Oracle MySQL Database Service (MDS) With Heatwave

 

What is new in the JDK 17?

  1. It is long-term support release (LTS), which means it is entitled for continued performance, stability, and security improvements for the next eight years. Please refer to Oracle Java SE Support Roadmap for more details.

  2. Simple license terms that will provide users/enterprises with three years of free functionality and support, including the performance and security updates every quarter – creating one year of free services overlap with the next LTS release.

  3. All the enterprise features added in the Java 17 SE, including the GraalVM, JMS, and the Advanced Management Console

  4. Sealed Classes (Java Enhancement Proposal [JEP] 409) for enabling API creators to mention interfaces/classes extending to other classes. It is aimed at simplifying development via a comprehensive list of cases for problem modeling.

  5. Enabled strict floating-point semantics to ‘always’ (JEP 306) for the previous variants were curtailed by the old hardware architectures

  6. Leveled-up PRNG (abbr. Pseudo-Random Number Generator) [JEP 356] for easy interoperability of various PRNGs and requesting requirement-based algorithms instead of hard coding. It also encompasses fresh interface types including jumpable and splitable pseudo-random number generators.

  7. With Java 2D macOS rendering pipeline (JEP 382) JDK 17 is now set free of the Apple OpenGL API

  8. Enhanced deserialization filters based on context (JEP 415) that allows apps to auto-configure dynamically retrieved deserialization filters, without having creators to revise the code

  9. The AArch64 port (JEP 391) for JDK on Apple’s new Arm-based architecture

  10. Pattern matching test in switch (JEP 406) for safe and terse complex data-driven query declaration

  11. Foreign function enhancement (JEP 412) in JDK 17 translates to mostly JNI-free foreign code/memory invocation for programs accessing native (non-Java) libraries, data, and apps

  12. Advanced Vector API (JEP 414) for delivering greater performance than scalar computations pervasively used in AI, ML, and cryptography

  13. Robust JDK internal encapsulation (JEP 403) for highly secured applications and lower reliance on internal, non-standard implementations

  14. Removal of the archaic Security Manager (JEP 411) as it failed to become the main source of safeguarding server-side or client-side Java code

  15. Removal of the Applet API (JEP 398) for losing relevance since the modern-day browser are capable of performing without the need for Java plug-ins

  16. Removal of the activation process for Remote Method Invocation (RMI) for putting it as default. Please note, no other modifications are made to RMI..

  17. Removal of the source code for experimental ahead-of-time (AOT) and just-in-time (JIT) compiler (JEP 410) as more popular substitutes are available

Oracle is grateful to all the individual and organization contributors for helping timely build the Java Development Kit 17, including the early adopters/reviewers offering their valuable suggestions on the build quality, bugs, and more.