Long-Term Support Release JDK 21: ujawniono nadchodzące funkcje standardowej Javy
Nadchodzące wydanie długoterminowego wsparcia dla standardowej Javy, JDK 21, ma pojawić się we wrześniu. Kluczowe funkcje obejmują kolekcje sekwencyjne, wątki wirtualne, szablony łańcuchów oraz podgląd funkcji obcych i API pamięci.

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.


