Java's Project Valhalla

A decade of work arrives in JDK 28

Wonderfully in-depth article on the history and technical details of "value objects" arriving in JDK 28. Very much worth a read.

Artur Skowronski on 2026-06-18:

On June 15, Oracle engineer Lois Foltan confirmed what a good chunk of the industry had stopped believing: JEP 401: Value Classes and Objects will be integrated into the main OpenJDK repository and is targeting JDK 28.

...

Why do I call this one of the biggest changes in the platform’s history? Because Valhalla doesn’t bolt yet another feature onto the language; it moves its deepest assumption. “Every object has identity” had been true in Java since 1995; it’s the foundation everything else stood on. Letting the programmer opt out of that assumption (choose which objects need identity and which don’t) isn’t a refactor, it’s a shift of the foundation. And that’s exactly why it unlocks a whole decade of further work: unifying primitives and objects, specializing generics, denser collections, faster numerics.

Kotlin has been preparing for Project Valhalla support in the JVM, ensuring its value classes will be forward-compatible.