Java 8 to 27 — The Journey
The useful path from Java 8 to Java 27: live on the LTS stops (8, 11, 17, 21, 25), then take 27 for four runtime defaults. Previews stay in the lab.
- Stops
- Live on the LTS hops: 8, 11, 17, 21, 25, then 27.
- Write
- New code should not look like Java 8. Records on 17. Virtual threads on blocking I/O once you are on 21.
- Java 27
- G1 everywhere, compact headers on, hybrid TLS, JFR redaction. No language change required.
- Between
- 9 brought modules. 16 finalized records. 26 is a six-month train, not a home.
- Lab
- Structured concurrency and lazy constants stay behind --enable-preview.
- Move
- If you are still on 8, land on 17 or 21 before you chase 27 defaults.