The Java community is preparing for a major update: Java Development Kit (JDK) 25, which is set to launch as a long-term support (LTS) release on September 16, 2025. Now in the release candidate stage, JDK 25 introduces 18 new features that touch on performance, security, concurrency, and developer experience. As an LTS version, it will receive at least five years of official support from Oracle, making it a critical release for enterprises and production environments.
Performance & Profiling Upgrades
One of the standout areas of improvement in JDK 25 is performance monitoring.
- JFR CPU-Time Profiling (Linux): The Java Flight Recorder now integrates with the Linux kernel to deliver more precise CPU-time metrics, helping developers optimize their applications.
- Ahead-of-Time Profiling: By reusing method profiles from earlier runs, the JVM can warm up faster, giving applications a performance boost at startup.
- Simpler AOT Caching: Creating ahead-of-time caches, introduced in JDK 24, becomes easier with streamlined command-line ergonomics.
- Better JFR Tracing: Cooperative sampling and method timing features add more stable, detailed performance data without requiring bytecode modifications.
Memory & Garbage Collection
Memory management continues to be a core focus:
- Generational Shenandoah Garbage Collector is now production-ready, improving throughput and handling heavy workloads more efficiently.
- Compact Object Headers, first tested in JDK 24, are finalized, reducing memory overhead and improving application density on 64-bit systems.
Language & API Improvements
Several language features are either being finalized or further previewed:
- Scoped Values (finalized) simplify sharing immutable data across threads and are easier to manage than thread-local variables.
- Structured Concurrency (5th preview) groups related tasks into single units, streamlining error handling and improving reliability.
- Primitive Types in Patterns & Switch (3rd preview) expands pattern matching capabilities to primitive types.
- Flexible Constructor Bodies (finalized) allow code to run before
super(...)
orthis(...)
, giving developers safer initialization options. - Module Import Declarations (preview) make it easier to reuse modular libraries by importing all packages from a module at once.
- Compact Source Files & Instance Main Methods (finalized) reduce boilerplate, making Java more beginner-friendly and suitable for quick scripts.
Security & Cryptography
JDK 25 enhances cryptographic support with:
- PEM Encoding API for handling keys and certificates in a widely used format.
- Key Derivation Function (KDF) API that brings modern algorithms like HKDF and Argon2 to the Java platform, usable in both Java and native code.
Vector & Math Enhancements
The Vector API continues its incubation journey (10th round), now offering:
- Auto-vectorization of Float16 operations on x64 CPUs.
- Integration with native math libraries via the Foreign Function & Memory API, improving performance and maintainability.
Other Updates
- Stable Values (Preview): Provide a flexible way to handle immutable objects, improving application startup performance.
- Removal of 32-bit x86 Port: The outdated architecture is dropped, allowing more focus on modern features.
Why JDK 25 Matters
This release builds on the foundation of JDK 21, the previous LTS from 2023, and consolidates years of experimental work into production-ready features. For enterprises, the combination of stability, performance, and modern language tools makes JDK 25 a natural upgrade path. Developers can already download early access builds from jdk.java.net to prepare their applications.
With its mix of language refinements, runtime optimization, and new APIs, JDK 25 is set to become the new standard for the Java ecosystem for years to come.