Java Cup
Inside Java

News and views from members of the Java team at Oracle

The Arrival of Java 21!

Follow Java and OpenJDK on Twitter.

Oracle is proud to announce the general availability of JDK 21. This release is the 12th Feature Release delivered on time through the six-month release cadence. This level of predictability allows developers to easily manage their adoption of innovation thanks to a steady stream of expected improvements.

Chart showing number of features per release since Java 8

Java’s ability to boost performance, stability, and security continues to make it the world’s most popular programming language.

JDK 21 is Now Available!

Oracle now offers JDK 21 for developers, end-users, and enterprises.

Oracle will offer long term support for Java 21 for at least eight years. This extended support period gives organizations flexibility to keep applications in production longer with minimal maintenance, and to eventually migrate on their own terms. Based on customer feedback and use in the Java ecosystem, Oracle has also announced that long term support for Java 11 has been extended through at least January 2032, providing at least eight more years of support and updates from Oracle.

Java 21, Together

As did with previous releases, Java 21 celebrates the contributions of many individuals and organizations in the OpenJDK Community — we all build Java, together!

JDK 21 Fix Ratio

The rate of change over time in the JDK releases has remained largely constant for years, but under the six-month cadence the pace at which production-ready features and improvements are delivered has sharply increased.

Instead of making tens of thousands of fixes and delivering close to one hundred JEPs (JDK Enhancement Proposals) every few years, as we did with yesteryear Major Releases, enhancements are delivered in leaner Feature Releases on a more manageable, predictable, six-month schedule. The changes range from significant new features to small enhancements to routine maintenance, bug fixes, and documentation improvements. Each change is represented in a single commit for a single issue in the JDK Bug System.

Of the 24,196 JIRA issues marked as fixed in Java 11 through Java 21 at the time of their GA, 17,288 were completed by people working for Oracle while 6,908 were contributed by individual developers and developers working for other organizations. Going through the issues and collating the organization data from assignees results in the following chart of organizations sponsoring the development of contributions in Java:

Graph showing the number of fixes per organization

In Java 21, of the 2,585 JIRA issues marked as fixed, 1,868 were completed by Oracle, while 717 were contributed by other members of the Java community. Oracle would like to thank the developers working for organizations including Amazon, ARM, Azul, Google, Huawei, IBM, Intel , ISCAS, Red Hat, Rivos, SAP and Tencent for their notable contributions. We are also thankful to see contributions from smaller organizations such as Bellsoft, and Loongson, as well as independent developers who collectively contributed 8% of the fixes in Java 21.

Additionally, through the OpenJDK Quality Outreach program we would like to thank the following FOSS projects that provided excellent feedback on testing Java 21 early access builds to help improve the quality of the release:

New in Java 21

Along with thousands of performance, stability and security updates, Java 21 delivers dozens of new features and enhancements, 15 of those enhancements are significant enough to warrant their own JDK Enhancement Proposals - JEPs, covering six preview features and one incubator feature.

JEP Preview Features are fully specified and fully implemented Language or VM Features of the Java SE Platform; and yet impermanent. They are made available in JDK Feature Releases to allow for developer feedback based on real-world uses, before them becoming permanent in a future release. This also affords tool vendors the opportunity to work towards supporting features before they are finalized into the Java SE Standard.

JEP Incubator Modules allow putting non-final APIs and non-final tools in the hands of developers and users to gather feedback that will ultimately improve the quality of the Java platform.

The 15 JEPs delivered with Java 21 are grouped into six categories mapping to key long-term Java technology projects and hardware support.

Project Amber

JEP 430: String Templates (Preview)

JEP 440: Record Patterns

JEP 441: Pattern Matching for switch

JEP 443: Unnamed Patterns and Variables (Preview)

JEP 445: Unnamed Classes and Instance Main Methods (Preview)

Project Loom

JEP 444: Virtual Threads

JEP 446: Scoped Values (Preview)

JEP 453: Structured Concurrency (Preview)

Project Panama

JEP 442: Foreign Function & Memory API (3rd Preview)

JEP 448: Vector API (6th Incubator)

Core Libraries

JEP 431: Sequenced Collections

Performance Updates

JEP 439: Generational ZGC

JEP 452: Key Encapsulation Mechanism API

Maintenance and Deprecation

JEP 449: Deprecate the Windows 32-bit x86 Port for Removal

JEP 451: Prepare to Disallow the Dynamic Loading of Agents

Resources

Java continues to be the #1 programming language for today’s technology trends. As the on-time delivery of improvements with Java 20 demonstrates, through continued thoughtful planning and ecosystem involvement, the Java platform is well-positioned for modern development and growth in the cloud.

Continue staying current with news and updates by: