Files
javademos/docs/01-what-shipped.md

3.2 KiB

1. What shipped, and what to believe

Next: 2. G1 becomes the default

Java 27 reached General Availability on 2026-09-15. It is not an LTS: Oracle's support roadmap lists Premier support for 27 until March 2027, and names Java 29 (September 2027) as the next LTS after 25. Everything in this repository was run on real JDK binaries; where a claim comes from prose rather than from a run, the chapter says so.

The nine JEPs in 27

JEP Title Status in 27 Chapter
523 Make G1 the Default Garbage Collector in All Environments final 2
534 Compact Object Headers by Default final 3
527 Post-Quantum Hybrid Key Exchange for TLS 1.3 final 4
532 Primitive Types in Patterns, instanceof, and switch fifth preview 5
531 Lazy Constants third preview 6
533 Structured Concurrency seventh preview 7
538 PEM Encodings of Cryptographic Objects third preview 8
536 JFR: In-Process Data Redaction final 9
537 Vector API twelfth incubator 9

The ten JEPs in 26 (the release many teams skipped)

JEP Title Status in 26 Chapter
500 Prepare to Make Final Mean Final final 11
504 Remove the Applet API final 11
516 Ahead-of-Time Object Caching with Any GC final 11
517 HTTP/3 for the HTTP Client API final 11
522 G1 GC: Improve Throughput by Reducing Synchronization final 11 (not measured here)
524 PEM Encodings of Cryptographic Objects second preview 8
525 Structured Concurrency sixth preview 7
526 Lazy Constants second preview 6
529 Vector API eleventh incubator 9
530 Primitive Types in Patterns, instanceof, and switch fourth preview 5

How the list was verified

openjdk.org/jeps and jdk.java.net/27 returned HTTP 403 from the sandbox used to write this, and no workaround was attempted. The lists were cross-checked between the Inside.java release announcement, Oracle's release blog, InfoWorld's and foojay's write-ups, and then against the binaries: the JDK 27 and 26 builds used here were diffed class by class (51, 52), which is how two API names in a secondary write-up were corrected. Treat the JEP titles above as "as reported by four secondary sources"; treat every behaviour as "observed on Corretto 26.0.2.1 / 27+35".

What was not reproduced

  • JDK-8377013 (a reported TimeZone.getDefault() regression) could not be reproduced and is left out.
  • HTTP/3 was never spoken to a real HTTP/3 server: the sandbox has no UDP egress (11).
  • JEP 522 (G1 synchronization) was not benchmarked.

Next: 2. G1 becomes the default