Die kommende Version 21 des Java Development Kits (JDK) für den langfristigen Support von Standard-Java ist für September geplant und wird sequenzierte Sammlungen, virtuelle Threads, String-Vorlagen und eine API für Fremdfunktionen und Speicher (in der Vorschau) umfassen. Diese Funktionen sollen die Erfahrung von Entwicklern in Bereichen verbessern, die vom Schreiben bis zur Wartung und Überwachung von gleichzeitigen Anwendungen mit hohem Durchsatz reichen.
Obwohl noch nicht offiziell auf der Versionsseite von JDK 21 aufgeführt, wird davon ausgegangen, dass die Vorschau auf die API für fremde Funktionen und Speicher kürzlich hinzugefügt wurde. Diese API ermöglicht es Java-Programmen, reibungslos mit Code und Daten außerhalb der Java-Laufzeit zu interagieren. Sie ermöglicht eine effiziente Kommunikation mit fremden Funktionen und einen sicheren Zugriff auf fremden Speicher, so dass Java-Programme mit systemeigenen Bibliotheken interagieren und systemeigene Daten verarbeiten können, ohne die Anfälligkeit und das Risiko des Java Native Interface (JNI) in Kauf nehmen zu müssen.
Die API für fremde Funktionen und Speicher wurde bereits in JDK 20 und JDK 19 vorgestellt, die im März bzw. September letzten Jahres veröffentlicht wurden. Die neueste Vorschau enthält Verbesserungen wie verbesserte Layout-Pfade, eine zentrale Verwaltung der Lebenszeiten nativer Segmente in der Arena-Schnittstelle, eine Fallback-Implementierung des nativen Linkers und die Entfernung der VaList. Die Ziele für diese API umfassen Benutzerfreundlichkeit, Leistung, Allgemeinheit und Sicherheit. Sie zielt jedoch nicht darauf ab, JNI zu ersetzen oder in irgendeiner Weise zu verändern.
Mit JDK 21 werden auch virtuelle Threads fertiggestellt, bei denen es sich um leichtgewichtige Threads handelt, die vielversprechend sind, um die Herausforderungen beim Schreiben, Warten und Beobachten von gleichzeitigen Anwendungen mit hohem Durchsatz drastisch zu reduzieren. Zu den Zielen dieser Funktion gehören die effektive Skalierung von Serveranwendungen mit optimaler Hardwareauslastung, die Förderung der Einführung virtueller Threads mit minimalen Änderungen am bestehenden lang.Thread-API-Code und die Vereinfachung von Debugging und Profiling virtueller Threads mit aktuellen JDK-Tools. JDK 21 wird die vollständige Unterstützung für thread-lokale Variablen mit virtuellen Threads sicherstellen, was die Kompatibilität mit bestehenden Bibliotheken erhöht und die Migration von aufgabenbasiertem Code zur Verwendung virtueller Threads erleichtert.
Sequenced Collections sind eine weitere Funktion, die JDK 21 begleiten wird. Diese Schnittstellen ermöglichen die Darstellung von Sammlungen mit einer eindeutigen Begegnungsreihenfolge, wobei jede Sammlung über wohldefinierte erste und zweite Elemente usw. verfügt. Es werden einheitliche APIs bereitgestellt, die den Zugriff auf das erste und das letzte Element sowie die Umkehrung der Verarbeitungsreihenfolge der Elemente erleichtern. Durch die Definition von Sequenzierungsschnittstellen für Collections, Sets und Maps zielt dieser Vorschlag darauf ab, Lücken im Collections-Framework von Java zu schließen und langjährige Benutzeranforderungen zu erfüllen.
String-Templates werden als Vorschaufunktion im JDK 21 debütieren und Javas bestehende String-Literale und Textblöcke verbessern, indem sie literalen Text mit eingebetteten Ausdrücken und Prozessoren verschmelzen, um spezielle Ergebnisse zu erzeugen. Die primäre Absicht hinter dieser Funktion ist es, die Java-Programmierung zu vereinfachen, indem sie es leicht macht, Strings auszudrücken, die zur Laufzeit berechnete Werte einschließen. String-Templates wurden entwickelt, um die Lesbarkeit von Ausdrücken zu verbessern, die Programmsicherheit zu erhöhen, die Flexibilität zu erhalten und die Arbeit mit APIs zu erleichtern, die Strings akzeptieren, die in anderen Sprachen als Java geschrieben wurden.
Gemäß dem vorgeschlagenen Veröffentlichungsplan für JDK 21 wird die Funktionsliste nach den Rampdown-Phasen am 8. Juni und 20. Juli eingefroren, während derer die Fehlerbehebung fortgesetzt wird. Die ersten und endgültigen Release Candidates folgen am 10. und 24. August, wobei Fehlerbehebungen weiterhin möglich sind. Die allgemeine Verfügbarkeit ist für den 19. September geplant.
JDK 21 wird ein Long-Term-Support (LTS) Release sein, das fünf Jahre Premier-Support und erweiterten Support bis September 2031 bietet. JDK 17, die aktuelle LTS-Version, wurde im September 2021 veröffentlicht. Nicht-LTS-Versionen, einschließlich JDK 20 und JDK 19, erhalten nur sechs Monate Premier-Support und keinen erweiterten Support.
Die Standard-Java-Implementierungen von Oracle werden alle sechs Monate veröffentlicht, und zu den potenziellen Funktionen von JDK 21 gehören alle in der Inkubationsphase befindlichen und die Vorschau-Funktionen von JDK 20. Dazu gehören scoped values, record patterns und pattern matching für switch-Anweisungen sowie universelle Generics, der generationale Z Garbage Collector und die asynchrone Stack Trace VM API. Andere innovative Plattformen wie No-Code- und Low-Code-Plattformen wie AppMaster können ebenfalls von diesen Fortschritten in der Java-Technologie profitieren.