Ron Veen

Modern Java 25

Shrink your heap by up to 20% and drastically cut startup times with Java 25's new JVM optimizations.

Modern Java 25
#1about 2 minutes

Understanding the scope of changes in Java 25

Java 25 introduces updates beyond the language, including libraries, APIs, and the JVM, categorized by feature status like preview or final.

#2about 3 minutes

Using primitive types in pattern matching switches

Java 25 now supports primitive types like integers directly within switch expressions and `instanceof` checks, simplifying type-based logic.

#3about 2 minutes

Introducing stable values for deferred immutability

The new stable values API provides true immutability and deferred initialization, improving application startup times and enabling JVM optimizations.

#4about 3 minutes

Simplifying thread management with structured concurrency

Structured concurrency treats groups of concurrent tasks as a single unit, automatically managing their lifecycle and simplifying error handling.

#5about 2 minutes

Using scoped values as a modern ThreadLocal alternative

Scoped values provide an immutable and efficient way to share data within a thread's call stack, replacing the problematic `ThreadLocal` API.

#6about 2 minutes

Simplifying code with module import declarations

Instead of importing individual classes, you can now import entire modules, making code easier to write and read for newcomers.

#7about 2 minutes

Making Java more accessible with simplified main methods

The `main` method syntax is now more flexible, allowing the removal of `public`, `static`, and even the surrounding class for simpler programs.

#8about 1 minute

Gaining control with flexible constructor bodies

The `super()` call is no longer required to be the first statement in a constructor, enabling pre-initialization validation and logic.

#9about 1 minute

Accelerating computations with the Vector API

The Vector API provides a platform-agnostic way to express vector calculations that compile to optimal SIMD hardware instructions for high performance.

#10about 1 minute

Standardizing cryptographic object encoding

A new API standardizes the encoding and decoding of cryptographic objects, ensuring consistent and secure handling across the ecosystem.

#11about 2 minutes

Preparing for post-quantum cryptography

New APIs for Key Encapsulation Mechanisms (KEM) and Key Derivation Functions (KDF) help protect today's encrypted data from future quantum computing threats.

#12about 4 minutes

Improving startup and warmup with AOT compilation

Project Leyden's Ahead-of-Time (AOT) compilation features reduce application startup and warmup times by caching class loading and JIT data.

#13about 1 minute

Reducing memory usage with compact object headers

By reducing the size of object metadata in the heap, compact object headers can decrease memory consumption by up to 20%.

#14about 1 minute

Enhancing profiling with Java Flight Recorder updates

Java Flight Recorder introduces new CPU profiling events and cooperative sampling for more accurate, less biased performance analysis.

#15about 1 minute

Improving garbage collection with Generational Shenandoah

The Shenandoah garbage collector now includes a generational mode, which improves performance by focusing collection efforts on short-lived objects.

#16about 1 minute

Removing the 32-bit x86 port to focus on new features

The legacy 32-bit x86 port has been removed, allowing the development team to dedicate more resources to modern platform features.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

From learning to earning

Jobs that call for the skills explored in this talk.

Back Java Legacy

Babel
Municipality of Madrid, Spain

Remote
Java
DevOps
Docker
Openshift
+3

Java Developer


Charing Cross, United Kingdom

104K
iOS
Java
REST
Redshift
+5

Java Software

Paradigma Digital
Municipality of Pozuelo de Alarcón, Spain

Senior
Go
Java
Docker
MongoDB
Ansible
+1