Java 21 – The Top 3 New Features according to the RabIT Developers




The forthcoming release of JDK 21 (Java Development Kit), scheduled for the 19th of September 2023, will bring a suite of 15 innovative features aiming to enhance the efficiency and productivity of Java developers. These upgrades strive to facilitate writing cleaner and less verbose code, thereby streamlining development processes and improving data security. In anticipation of this update, we asked our software engineers at RabIT which new features they are most looking forward to:


1. Structured Concurrency

Structured Concurrency has undergone prior testing in JDK 19 and 20, and it is set to be a preview feature in JDK 21 – Meaning you’ll need to turn it on explicitly before you can use it, and the feature might still be reworked before it’s finalized. The main goal of Structured Concurrency is to simplify concurrent programming by enabling the simultaneous handling of related tasks on separate threads and ensuring their proper synchronization.

conc_transpConcurrent vs. parallel programming


By grouping the tasks together logically, this update enhances code stability and transparency, thereby reducing the potential risks of thread leaks and simplifying bug fixing significantly.


2. Virtual Threads

Virtual Threads are considered to be one of the most important innovations in the history of Java. In Java 21, if a virtual thread gets blocked or suspended, Java will execute another thread automatically. This new function will empower developers to seamlessly run millions of threads concurrently, without having to alter anything in the codebase itself.

Virtual threads will be a notable enhancement, bolstering processing capacity and speeding up development timelines, and completely revolutionizing concurrent programming.


3. Unnamed Variables, Patterns and Classes

Many times, developers have to define a variable, a pattern or a class that they will probably never need in the future again. In Java 21, it will be possible to replace or completely leave out these entities:

From now on, unneeded variables and patterns can be conveniently denoted using an underscore (_), and with the inclusion of Unnamed Classes and Instance Main Methods – two of the most expected preview features – many Java code segments will be shorter and simpler to write, minimizing “boilerplate” code. This latest upgrade enables developers a streamlined approach to optimize code efficiency and maintain a more concise programming structure.

Let’s look at the example of the famous “Hello World” program:


helloworld-1“Hello World” before Unnamed Classes


csaasdlfi“Hello World” after Unnamed Classes



Some of the notable mentions not enumerated here include scoped values, which replace thread-local variables, offering more flexibility and ensuring safer data sharing. Furthermore, the introduction of the KEM API facilitates improved security practices and extends encryption possibilities, among many other useful new features that could be explored further.

Java 21 has the potential to become one of the most significant advancements in the history of the programming language. Anticipated benefits include enhanced security for Java applications and a much more streamlined development process, sparking great interest among our Java developers, who can’t wait for the update to arrive and start working with increased efficiency.

Subscribe to our newsletter!