Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01B38FGKKam5SCGgwgduVAh3
53 lines
3.2 KiB
Markdown
53 lines
3.2 KiB
Markdown
# 1. What shipped, and what to believe
|
|
|
|
Next: [2. G1 becomes the default](02-g1-default.md)
|
|
|
|
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](02-g1-default.md) |
|
|
| 534 | Compact Object Headers by Default | final | [3](03-compact-headers.md) |
|
|
| 527 | Post-Quantum Hybrid Key Exchange for TLS 1.3 | final | [4](04-post-quantum-tls.md) |
|
|
| 532 | Primitive Types in Patterns, instanceof, and switch | fifth preview | [5](05-primitive-patterns.md) |
|
|
| 531 | Lazy Constants | third preview | [6](06-lazy-constants.md) |
|
|
| 533 | Structured Concurrency | seventh preview | [7](07-structured-concurrency.md) |
|
|
| 538 | PEM Encodings of Cryptographic Objects | third preview | [8](08-pem-api.md) |
|
|
| 536 | JFR: In-Process Data Redaction | final | [9](09-jfr-redaction-and-vector.md) |
|
|
| 537 | Vector API | twelfth incubator | [9](09-jfr-redaction-and-vector.md) |
|
|
|
|
## 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](11-recap-26.md) |
|
|
| 504 | Remove the Applet API | final | [11](11-recap-26.md) |
|
|
| 516 | Ahead-of-Time Object Caching with Any GC | final | [11](11-recap-26.md) |
|
|
| 517 | HTTP/3 for the HTTP Client API | final | [11](11-recap-26.md) |
|
|
| 522 | G1 GC: Improve Throughput by Reducing Synchronization | final | [11](11-recap-26.md) (not measured here) |
|
|
| 524 | PEM Encodings of Cryptographic Objects | second preview | [8](08-pem-api.md) |
|
|
| 525 | Structured Concurrency | sixth preview | [7](07-structured-concurrency.md) |
|
|
| 526 | Lazy Constants | second preview | [6](06-lazy-constants.md) |
|
|
| 529 | Vector API | eleventh incubator | [9](09-jfr-redaction-and-vector.md) |
|
|
| 530 | Primitive Types in Patterns, instanceof, and switch | fourth preview | [5](05-primitive-patterns.md) |
|
|
|
|
## 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](output/51-api-diff-26-to-27.txt),
|
|
[52](output/52-api-diff-25-to-26.txt)), 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](11-recap-26.md)).
|
|
* JEP 522 (G1 synchronization) was not benchmarked.
|
|
|
|
Next: [2. G1 becomes the default](02-g1-default.md)
|