Modern Java Evolution

Release Cadence & Versions

Since Java 9, a feature release ships every six months, with an LTS every two years (11, 17, 21, 25). Features arrive as previews first, ecosystems target LTS, and "Java is stagnant" died in 2017.
  • Two releases per year (March/September); LTS every 2 years — 21 (2023) and 25 (2025) are current targets
  • Preview features need --enable-preview and can change; incubator APIs likewise
  • Landmark drops: 8 lambdas/streams; 9 modules; 11 HttpClient + LTS; 17 sealed; 21 virtual threads + pattern matching
  • Upgrading LTS→LTS is the mainstream path; each skip accumulates real performance/GC wins for free
  • The --release N flag compiles against N's API — safer than source/target alone
The releases that changed how Java is written
VersionYearHeadliners
82014lambdas, streams, Optional, java.time
92017modules (JPMS), JShell, six-month cadence begins
11 (LTS)2018HttpClient, var (10), single-file run, JFR open-sourced
17 (LTS)2021sealed classes, records (16), pattern matching instanceof, text blocks (15)
21 (LTS)2023virtual threads, pattern matching for switch, sequenced collections, generational ZGC
25 (LTS)2025compact source files, scoped values, module import declarations, Shenandoah gen.

The cadence changed the risk model: instead of a decade-scale big-bang release (Java 9 was five years late), features ship when ready, hardened through preview rounds — pattern matching took four previews across 17–21. For teams this means: read release notes twice a year, adopt on LTS, and treat preview features as experiments, never production commitments (they have changed between previews).

The quiet compounding: each release carries GC improvements (generational ZGC), JIT gains, and startup work that arrive without code changes. Multiple industry benchmarks show double-digit throughput gains going 8 → 17 → 21 purely from the runtime. Staying on 8 (still common) forfeits a decade of free performance — the cheapest optimization most legacy systems have available (Performance Methodology).

Sources
  • Core Java, Volume I: Fundamentals (13th ed.)Ch. 1 — An Introduction to Java
  • Optimizing Cloud Native Java (2nd ed.)Ch. 15 — Modern Performance and The Future
  • Learning Java (6th ed.)Ch. 1 — A Modern Language