Java 20 to jedna z najnowszych wersji języka programowania Java, która jednak nie przynosi nowych, finalnych rozwiązań.
Mimo to, w tej wersji pojawiło się kilka ciekawych funkcjonalności w wersji preview,
które w przyszłości mogą stanowić o sile Javy.
Warto przypomnieć, że JDK 20 nie jest wydaniem długoterminowego wsparcia (LTS),
więc będzie aktualizowane tylko do momentu, gdy zostanie zastąpione przez JDK 21 po sześciu miesiącach.
Najnowszym wydaniem długoterminowego wsparcia (LTS),
zgodnie z ogłoszonym harmonogramem wydań w 2018 roku,
jest Java 17 (wydana 14 września 2021 r.).
Niezależnie od tego, że Java 20 nie jest wydaniem LTS, warto przejrzeć rozwiązania przygotowane w tej wersji,
ponieważ wyznaczają one trendy w kierunku dalszego rozwoju Javy. Duży nacisk jest obecnie położony
na rozszerzenie mechanizmów wzorców dopasowań oraz na ulepszenie programowania wielowątkowego.
Java 20 - 21 marca 2023
- Scoped Values [incubator]
Scoped values umożliwiają współdzielenie niemodyfikowalnymi danymi w obrębie i między wątkami.
Więcej w filmie:
- Record Patterns [second preview]
Wzorce dopasowania pojawiały się już wcześniej (przed Javą 17) i były omawiane w kontekście na przykład operatora instanceof.
Od Javy 19 mamy wprowadzone wzorce dla rekordów. Więcej w filmie:
-
Pattern Matching for switch [fourth preview]
Ulepszenie Javy o dopasowywanie wzorców dla wyrażeń i instrukcji switch.
Rozszerzenie dopasowywania wzorców dla switch pozwala na testowanie wyrażenia względem wielu wzorców,
każde z określonym działaniem, co powoduje, że nawet złożone wyrażenia można wyrazić w sposób zwięzły i bezpieczny.
Biorąc pod uwagę to, że jest to już czwarte wydanie wersji preview z finalnym podsumowaniem poczekamy na ostateczną wersję.
Jeśli jesteś zainetresowany ogólnym rozeznaniem w temacie pattern matching dla switch to pisaliśmy już o tym
w artykułach
Co nowego w Javie 17? i
Premiera Javy 19.
-
Foreign Function & Memory API [second preview]
API, dzięki któremu programy Java mogą współpracować z kodem i danymi poza środowiskiem uruchomieniowym Java.
API pozwala na efektywne wywoływanie obcych funkcji (tj. kodu spoza JVM) oraz bezpieczny dostęp do obcej pamięci
(tj. pamięci niezarządzanej przez JVM). Dzięki temu, programy Java mogą korzystać z natywnych bibliotek oraz przetwarzać natywne dane.
-
Wątki wirtualne [second preview]
Wirtualne wątki to lekkie wątki, które znacznie zmniejszają nakład pracy związany z pisaniem, utrzymaniem i obserwacją aplikacji
współbieżnych o wysokiej przepustowości. Temat ten jest nieco szerzej omawiany w filmie o Scoped Values.
-
Współbieżność strukturalna [incubator]
Współbieżność strukturalna ma na celu uproszczenie programowania wielowątkowego za pomocą strukturalnego interfejsu API dedykowanego współbieżności. Traktuje ona wiele zadań działających w różnych wątkach jako pojedynczą jednostkę pracy, usprawniając w ten sposób obsługę i anulowanie błędów.
Temu rozwiązaniu poświeciliśmy osobny artykuł —
Współbieżność strukturalna w Javie 19
-
Vector API [fifth incubator]
Vector API jest częścią JDK od wersji Java 16 jako inkubator i był dalej rozwijany w Javie 17 i Javie 18.
Nie ma on nic wspólnego z klasą java.util.Vector.
W rzeczywistości chodzi o nowe API do matematycznego obliczania wektorów i jego mapowania na nowoczesne procesory SIMD (Single-Instruction-Multiple-Data).
Pełna lista zmian jest dostępna pod linkiem podanym na koniec rozdziału.
Java 20 to kolejna wersja Javy, w której większość zmian znajduje się
w przygotowaniu w ramach trybu preview lub nawet inkubatora.
Od pewnego czasu można zauważyć, że twórcy języka kładą duży nacisk na ulepszenie programowania wielowątkowego,
co wpłynie na zwiększenie wydajności w przypadku równoległego wykonywania zadań.
Szukasz dobrego kursu nowej Javy? Mamy dla Ciebie kurs oparty na 150 przykładach.
Kurs nowej Javy składa się z kursu Javy 8 oraz Javy od wersji 9 do 17.
Autor: Jarek Klimas
Data: 23 marca 2023
Labele:Backend, Poziom podstawowy, Java
Linki:
openjdk.org/projects/jdk/20
Masz pytanie odnośnie zagadnienia omawianego w artykule?
Coś, co napisaliśmy, nie zaspokoiło Twojego głodu wiedzy?
Daj nam znać co myślisz i skomentuj artykuł na facebooku!