Oracle has announced the release of Java 22, which adds 12 new features to the language and aims to make the language more accessible to beginners. 

“The new enhancements in Java 22 enable more developers to quickly and easily build and deliver feature-rich, scalable, and secure applications to help organizations across the globe grow their businesses,” said Georges Saab, senior vice president of the Oracle Java Platform and chair of the OpenJDK governing board. “By delivering enhancements that streamline application development and extend Java’s reach to make it accessible to developers of all proficiency levels, Java 22 will help drive the creation of a wide range of new applications and services for organizations and developers alike.”  

Java 22 introduces implicitly declared classes and instance main methods as a second preview, which will be useful for onboarding new Java developers. Students will be able to start coding in Java without learning all of the concepts for large projects from the start, allowing them to learn the language more gradually. 

“For students coming into a new programming language, that’s a lot to take on or ignore, so we wanted to make things simpler,” said Saab. 

The language also now gives developers more freedom in expressing the behavior of constructors. In this latest update, developers can create statements that show up before an explicit constructor invocation that don’t reference the instance that is being created. This feature also preserves the top-down order that constructors are supposed to follow during class instantiation. 

This release introduces the use of unnamed variables and patterns, denoted by the underscore character. These are useful when variable declarations or nested patterns are required even though they won’t be used. According to Oracle, this new feature will cut down on errors, improve readability of record patterns, and increase the maintainability of code. 

Another new feature – string templates — combine literal text with embedded expression and template processors. This feature, currently in preview, is useful for expressing strings that contain values generated at run time and help improve security and readability of code. 

Another anticipated feature that made its way into this release is the Foreign Function & Memory API, which allows Java code to interact with code and data outside of the Java Runtime without using the Java Native Interface. 

JEP 458 also brings the ability to allow the Java launcher to run a program that is supplied as multiple Java source code files. 

This release also features JEPs in preview, including a Class-File API and Stream Gatherers, and a few in second preview, such as Structured Concurrency and Scoped Values. Additionally, the Vector API for expressing vector computations is now in its Seventh Incubator stage.