JEP 401: Value Objects (Preview) merged to OpenJDK master

Java’s giant makeover lands, and the comments are equal parts hype and panic

TLDR: OpenJDK merged a major preview of Java’s Value Objects feature, a big step in a years-long overhaul. The community reaction was a mix of amazement at the huge scope, confusion over how complete it is, and nervous debate about familiar Java behavior changing in ways developers may actually feel.

OpenJDK just merged the first preview of Value Objects, a long-brewing Java change that aims to make some data-heavy objects lighter and faster to use. Translation for normal humans: one of the world’s biggest programming platforms is trying to rethink how certain things exist in memory — and the community immediately turned the comments into a mix of awe, confusion, and mild existential dread.

The biggest jaw-dropper? The sheer size of the work. One commenter basically screamed, “2934 commits OMG”, which set the tone: this is not a cute little patch, it’s a monster. Another asked the question everyone was thinking: is this half of Project Valhalla or basically the whole thing? That uncertainty gave the thread a real “are we witnessing history or just chapter one?” energy.

Then came the spicy anxiety. One user zeroed in on Integer, a super-common Java building block, and worried that if it becomes a value class, it could lose its object identity — which sounds abstract until you realize developers are hearing, “one of the oldest familiar pieces of Java may stop behaving the way you expect.” Bold move? Revolutionary upgrade? Potential headache? The comments couldn’t decide.

And because no major Java announcement is complete without someone checking the receipts, another commenter swooped in with the digital equivalent of “it’s official, here’s the commit. Meanwhile, others were still asking practical questions about limits and edge cases. In other words: the code is merged, but the comment section is still very much in preview mode.

Key Points

  • The master pull request implements the first preview of JEP 401: Value Objects for OpenJDK.
  • The same pull request also implements JEP 539: Strict Field Initialization in the JVM because JEP 401 depends on it.
  • The master pull request is intended for sign-off and integration into jdk/master, while detailed review is split across sub-review pull requests.
  • Code changes are to be made in valhalla/lworld, which is periodically synchronized with jdk/master and propagated back into the review PRs.
  • The work is tracked under issues JDK-8389219 and JDK-8389220, both listed as enhancement items with priority P4.

Hottest takes

"2934 commits OMG" — germandiago
"50% of it? 90% of it?" — whytevuhuni
"rather bold move" — weinzierl
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.