Nadchodzące wydanie długoterminowego wsparcia dla standardowej Javy, Java Development Kit (JDK) 21, jest zaplanowane na wrzesień i będzie zawierać sekwencyjne kolekcje, wirtualne wątki, szablony łańcuchów i obce funkcje oraz API pamięci (w podglądzie). Funkcje te mają zwiększyć doświadczenie programistów w obszarach od pisania do utrzymywania i monitorowania aplikacji współbieżnych o wysokiej wydajności.
Choć nie jest jeszcze oficjalnie wymieniony na stronie wydania JDK 21, uważa się, że podgląd API funkcji obcych i pamięci został dodany niedawno. Ten interfejs API umożliwia programom Java płynną współpracę z kodem i danymi spoza runtime'u Javy. Pozwala na wydajną komunikację z funkcjami obcymi i bezpieczny dostęp do pamięci obcej, umożliwiając programom Java interakcję z rodzimymi bibliotekami i przetwarzanie rodzimych danych bez niestabilności i ryzyka stwarzanego przez Java Native Interface (JNI).
API funkcji obcych i pamięci obcej zostało wcześniej wstępnie zaprezentowane w JDK 20 i JDK 19, które zostały wydane odpowiednio w marcu i wrześniu ubiegłego roku. Najnowszy podgląd zawiera ulepszenia, takie jak ulepszone ścieżki układu, scentralizowane zarządzanie czasem życia segmentów natywnych w interfejsie Arena, awaryjna implementacja natywnego linkera i usunięcie VaList. Cele dla tego API obejmują łatwość użycia, wydajność, ogólność i bezpieczeństwo. Jednakże, nie ma on na celu zastąpienia JNI lub zmiany go w jakikolwiek sposób.
JDK 21 przyniesie również sfinalizowane wątki wirtualne, które są lekkimi wątkami, które mają wielką obietnicę drastycznego zmniejszenia wyzwań związanych z pisaniem, utrzymaniem i obserwacją aplikacji współbieżnych o wysokiej wydajności. Cele stojące za tą funkcją obejmują umożliwienie aplikacjom serwerowym efektywnego skalowania z optymalnym wykorzystaniem sprzętu, promowanie przyjęcia wirtualnych wątków przy minimalnych zmianach w istniejącym kodzie API lang.Thread oraz uproszczenie debugowania i profilowania wirtualnych wątków za pomocą obecnych narzędzi JDK. JDK 21 zapewni pełne wsparcie dla zmiennych thread-local z wątkami wirtualnymi, zwiększając kompatybilność z istniejącymi bibliotekami i wspomagając migrację kodu opartego na zadaniach do wykorzystania wątków wirtualnych.
Kolekcje sekwencyjne to kolejny zestaw funkcji, który będzie towarzyszył JDK 21. Interfejsy te pozwalają na reprezentację kolekcji z wyraźnym porządkiem spotkania, gdzie każda kolekcja ma dobrze zdefiniowane elementy pierwsze i drugie i tak dalej. Zapewnione zostaną jednolite interfejsy API ułatwiające dostęp do pierwszego i ostatniego elementu oraz odwrócenie kolejności przetwarzania elementów. Poprzez zdefiniowanie interfejsów sekwencjonowania dla kolekcji, zbiorów i map, propozycja ta ma na celu wypełnienie luk w ramach kolekcji Javy i spełnienie długotrwałych wymagań użytkowników.
Szablony łańcuchów zadebiutują jako funkcja podglądowa w JDK 21, wzmacniając istniejące w Javie literały łańcuchowe i bloki tekstowe poprzez łączenie tekstu literalnego z wbudowanymi wyrażeniami i procesorami w celu wygenerowania specjalistycznych wyników. Głównym celem tej funkcji jest uproszczenie programowania w Javie poprzez ułatwienie wyrażania łańcuchów zawierających wartości obliczane w czasie rzeczywistym. Szablony ciągów są zaprojektowane tak, aby poprawić czytelność wyrażeń, zwiększyć bezpieczeństwo programu, utrzymać elastyczność i ułatwić pracę z API, które akceptują ciągi napisane w językach innych niż Java.
Zgodnie z proponowanym planem wydania JDK 21, lista funkcji zostanie zamrożona po fazach rampdown 8 czerwca i 20 lipca, podczas których będą kontynuowane poprawki błędów. Wstępne i ostateczne wersje kandydatów do wydania będą miały miejsce 10 sierpnia i 24 sierpnia, przy czym nadal możliwe jest poprawianie błędów. Ogólna dostępność przewidziana jest na 19 września.
JDK 21 będzie wydaniem z długoterminowym wsparciem (LTS), zapewniając pięć lat wsparcia Premier i rozszerzone wsparcie do września 2031 roku. JDK 17, obecna wersja LTS, została wydana we wrześniu 2021 roku. Wydania inne niż LTS, w tym JDK 20 i JDK 19, otrzymują tylko sześć miesięcy wsparcia Premier i nie otrzymują wsparcia rozszerzonego.
Standardowe implementacje Java przez Oracle są publikowane co sześć miesięcy, a potencjalne funkcje dla JDK 21 obejmują wszystkie funkcje inkubacyjne i wstępne w JDK 20. Mogą one obejmować wartości scoped, wzorce rekordów i dopasowywanie wzorców dla instrukcji switch, a także uniwersalne generics, generational Z garbage collector i asynchroniczne śledzenie stosu VM API. Inne nowatorskie platformy, takie jak platformy bez kodu i z niskim kodem, takie jak AppMaster, mogą również skorzystać z tych postępów w technologii Java.