Effective September 17, 2024, Oracle Java 23 is available. This new version introduces 12 Java Development Kit (JDK) Enhancement Proposals (JEPs) designed to enhance developer productivity. Additionally, Java 23 brings significant improvements to performance, stability, and security, aiding organizations in accelerating their business growth.
New Features
Java 23 (JDK 23) includes 12 notable improvements aimed at improving the development experience:
- Primitive Types in Patterns, instanceof, and switch (JEP 455): Enhances pat-tern matching by allowing primitive type patterns in all contexts.
- Module Import Declarations (JEP 476): Simplifies the reuse of modular libraries by enabling quick and easy import of all packages exported by a module.
- Implicitly Declared Classes and Instance Main Methods (JEP 477): Provides a smooth on-ramp to Java programming for beginners.
- Flexible Constructor Bodies (JEP 482): Allows statements before an explicit con-structor invocation, enhancing class instantiation reliability.
- Class-File API (JEP 466): Offers a standard API for parsing, generating, and trans-forming Java class files.
- Vector API (JEP 469): Introduces an API for vector computations, enabling superi-or performance.
- Stream Gatherers (JEP 473): Enhances the Stream API to support custom inter-mediate operations.
- Structured Concurrency (JEP 480): Simplifies concurrent programming by con-solidating related tasks into a single unit of work.
- Scoped Values (JEP 481): Enables sharing of immutable data within and across threads.
- ZGC: Generational Mode by Default (JEP 474): Switches the default mode of the Z Garbage Collector to generational mode.
- Markdown Documentation Comments (JEP 467): Allows Javadoc comments to be written in Markdown.
- Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal (JEP 471): Helps developers identify reliance on memory-access methods planned for future removal.
New Supporting Tools and Services
Java 23 comes with robust support tools designed to make managing and optimizing Java applications easier than ever.
Java Management Service (JMS) 9.0 is a native service on Oracle Cloud Infrastructure (OCI) and included with the Java SE Universal Subscription. JMS 9.0 provides a unified console and dashboard and gives organizations a comprehensive view of their Java runtimes and applications. This centralized management tool simplifies monitoring, troubleshooting, and optimizing Java environments, whether they are on-premises or in the cloud.
Another significant addition is the Graal JIT Compiler. Written in Java, this dynamic compiler transforms bytecode into highly optimized machine code. By doing so, it significantly boosts the performance of Java applications. The Graal JIT Compiler is particularly beneficial for applications requiring high performance and low latency. It is included in Oracle JDK 23 and can be used under the Oracle No-Fee Terms and Conditions (NFTC) license. However, commercial support for the Graal JIT is only available through the Java SE Universal Subscription or when running the Oracle JDK on Oracle Cloud Infrastructure (OCI).
Licensing
Oracle offers two main licensing options for Java:
Feature | Oracle No-Fee Terms and Conditions (NFTC) | Java SE Universal Subscription |
Cost | Free for production use and redistribution | Paid subscription based on the number of employees |
Production Use | Yes | Yes |
Updates | No more updates for JDK 23 from March 2025 with JDK 24 release | Continuous updates and access to all performance, stability, and security enhancements |
Support | No access to Oracle’s support services | Comprehensive support, including 24/7 access to My Oracle Support |
Additional Tools | None | Includes Oracle GraalVM, Java SE Subscription Enterprise Performance Pack, and Java Management Service |
Licensing and Deployment | Free for production and redistribution | Licensing and support for Java SE on desktops, servers, and cloud deployments |
FAQ
What is Oracle Java?
Oracle Java is a widely-used programming language that enables developers to create applications that can run on any device with a Java Virtual Machine (JVM). This cross-platform capability makes Java suitable for a wide range of applications, from mobile apps to large-scale enterprise systems.
Java is known for its robust security features, and its performance is enhanced by the Just-In-Time (JIT) compiler and other optimization techniques.
The Java ecosystem includes the Java Development Kit (JDK) for development, the Java Runtime Environment (JRE) for running applications, and the Java Virtual Machine (JVM), which executes Java bytecode.
What is the Java Development Kit (JDK)?
The JDK is a software development environment used for developing Java applications and applets. It includes tools such as the Java Runtime Environment (JRE), compiler, interpreter/loader, archiver, documentation generator, and debugger.
How often are new Java versions released?
Oracle releases new Java versions every six months. Java 23 will receive updates until March 2025, after which it will be superseded by JDK 24.
Why should developers use Java?
Java is known for its portability, scalability, and robustness. It allows developers to write code that can run on any device with a Java Virtual Machine (JVM), which makes it a versatile choice.
What are the benefits of upgrading to Java 23?
Upgrading to Java 23 provides access to the latest features and enhancements. This also includes improved performance, stability, and security. The new JEPs also help developers increase productivity and streamline application development.
What happens to users of the now old Java 22?
- Java SE Universal Subscription: Continuous support and updates for Java 22, along with access to Oracle’s support services and additional tools.
- NFTC: Free use and updates for Java 22 until September 2024, but no access to Oracle’s commercial support or additional tools.
Java 22 users are not automatically upgraded to Java 23. Organizations need to manually download and install Java 23 if they wish to upgrade.
More information
Download Java 23 here: https://www.oracle.com/be/java/technologies/downloads/.
Find a full list of changes in Java 23 here: https://blogs.oracle.com/java/post/the-arrival-of-java-23.
For the launch stream of Java 23, please visit: https://www.youtube.com/live/QG9xKpgwOI4.
Learn more about Oracle Java SE Universal Subscription: https://www.oracle.com/java/java-se-subscription/.
To learn more about Oracle, please visit: https://www.schneider.im/software/Oracle.
Contact us to get help on your Oracle licensing and request a quote today.