
Half a year ago, I wrote an article with Lutske de Meer on why Java 26 is boring and why it is a good thing. Being boring also means being stable and predictable. Java 27, which came out the day this blog post comes out, is no different. While the language and the runtime library surface didn’t change with this release and only four non-preview JDK Enhancement Proposals (JEPs) got merged, the JVM changed significantly under the hood. So in this blog, I’ll tell you all about the new JEPs, how the preview ones have changed since JDK 26, and the notable changes in the JDK you might not read elsewhere (except in the release notes, which this text is heavily based on and Artur Skowroński‘s well researched JVM Weekly).
TL;DR: Java/JDK 27 got some new defaults and refinements, but the most consequential change is the removal of the JVM compiler interface.
Continue reading
