LTS: zwei Jahre, vier Versionen
Vor vier Wochen, am 16.9.2025, erschien Java 25. Das Besondere, neben anderen Dingen wie „Java 25 im Jahr 2025!“ oder „16 + 9 = 25“: Nach zwei Jahren bekommen wir endlich wieder eine LTS-Version.
LTS steht für Long-Term Support, und das ist für viele Unternehmen der entscheidende Punkt. Zum einen bedeutet das eine deutlich längere Supportdauer der Anbieter, und zum anderen können viele Features, die in den Versionen seit der letzten LTS dazugekommen sind, jetzt auch in der Produktion eingesetzt werden.
Und das sind nicht wenige:
Java-Version | Incubating, experimental | Preview | Final | Summe |
---|---|---|---|---|
22 | 1 | 7 | 4 | 12 |
23 | 1 | 8 | 2 | 11 |
24 | 3 | 7 | 14 | 24 |
25 | 2 | 4 | 12 | 18 |
Wie viele fertige Features haben uns also tatsächlich erreicht?
In dieser Übersicht sind allerdings noch einige Duplikate enthalten. Beispielsweise sind Stream Gatherers in Java 22 als Preview eingeführt worden, in Java 23 als 2nd weitergeführt und schließlich mit Java 24 finalisiert.
Bereinigt ergibt sich also diese immer noch recht umfangreiche Liste:
Java-Version | Anzahl finalisierter Features |
---|---|
22 | 5 |
23 | 3 |
24 | 14 |
25 | 12 |
34 neue Features! Rein zahlenmäßig sind das recht viele – aber sind wirklich alle davon für den typischen Entwickleralltag relevant?
Preview- und Incubating Features sollten in der Produktion generell nicht eingesetzt werden. Es sind zwar viele interessante Neuerungen dabei (Structured Concurrency: 5th Preview, Vector API: 10th Incubator), aber spätestens seit dem Schicksal der String Templates sollten wir immer im Hinterkopf behalten, dass solche Features auch jederzeit wieder verschwinden können. String Templates wurden mit Java 21 als Preview eingeführt und in Java 22 als 2nd Preview weitergeführt. Der 3rd Preview wurde aber zurückgezogen, so dass Java ab Version 23 wieder ohne String Templates dastand. Wer dieses Feature also heute noch verwendet, schreibt also schon jetzt Legacy-Code.
Schauen wir uns die Finals an. Nicht wenige richten sich eher an spezielle Zielgruppen oder Szenarien:
- Sie beheben Probleme, die moderne IDEs ohnehin schon lösen.
- Sie zielen eher auf Bildungs- und Lernszenarien ab.
- Sie befinden sich noch im Vorschaustadium.
- Oder sie betreffen Performance-Verbesserungen, die man im Alltag kaum direkt merkt.
Legen wir auch diese beiseite, verbleiben solide sechs Features
Java 22
- JEP 456: Unnamed Variables & Patterns: Ungenutzte Variablen und Record-Teile können durch einen Unterstrich _ ersetzt werden. Das macht den Code leichter lesbar und verständlicher und verdeutlicht, dass ein Wert nicht für die Verwendung vorgesehen ist.
Java 23
- JEP 467: Markdown Documentation Comments: Javadoc-Kommentare können jetzt in Markdown verfasst werden, anstatt eine Mischung aus HTML und @-Tags verwenden zu müssen.
Java 24
- JEP 485: Stream Gatherers: Mit eigenen, benutzerdefinierten Intermediate Operations in Streams können Daten effizient gruppiert, aggregiert oder transformiert werden.
- JEP 491: Synchronize Virtual Threads without Pinning: Virtual Threads blockieren bei
synchronized
-Blöcken nicht mehr ihren Carrier-Thread. Das kann die Skalierbarkeit von hochgradig nebenläufigen Anwendungen deutlich steigern.
Java 25
- JEP 506: Scoped Values: Werte können über Methodenaufrufe hinweg verfügbar gemacht werden, ohne sie als Parameter durchzureichen oder globale Zustände zu nutzen.
- JEP 513: Flexible Constructor Bodies: In Konstruktoren kann Code jetzt auch vor dem Aufruf von
super()
oderthis()
ausgeführt werden. So können Attribute validiert und initialisiert werden, bevor der Parent-Konstruktor lädt. Mehr dazu in diesem Artikel.
Lobende Erwähnung
- JEP 519: Compact Object Headers: Reduziert die Größe von Object-Headern von 12 auf 8 Bytes. Bei Anwendungen mit Millionen von Objekten auf dem Heap kann das ein spürbarer Speicher-Gewinn sein.
Fazit: Der Umstieg lohnt sich
Seit Java 21 LTS hat sich einiges getan: Der halbjährliche Releasezyklus bringt regelmäßig neue Versionen mit spannenden Funktionen und Verbesserungen, die die Sprache, die Bibliotheken und das Laufzeitsystem Schritt für Schritt moderner, performanter und zugänglicher gemacht haben.
Java hat ein Reifestadium erreicht, in dem Evolution wichtiger ist als Revolution. Der Fokus liegt heute auf Stabilität, Wartbarkeit und einem stetig verbesserten Entwicklererlebnis.
Das ist genau richtig für eine Enterprise-Plattform. Java 25 bietet eine sichere Basis für Systeme, die Jahre laufen müssen, und lässt gleichzeitig Raum für Innovation. Für Teams, die mit modernen Werkzeugen arbeiten und auf bewährte Technologie setzen, ist das ein echtes, lohnendes Update.