Nowa wersja Java SE 18 została już wydana i to są jej nowości

Po sześciu miesiącach rozwoju, Oracle wydało wydanie nowa wersja Jawa SE 18 (Standard Edition), który wykorzystuje projekt OpenJDK open source jako implementację referencyjną.

W tej nowej wersji Java SE 18 występuje z wyjątkiem usunięcie niektórych przestarzałych funkcji, zachowanie kompatybilności ze starszymi wersjami platformy Java, a większość projektów Java napisanych wcześniej będzie działać bez zmian po uruchomieniu z nową wersją.

Główne nowe funkcje Java SE 18

W nowej wersji Java SE 18 domyślnym kodowaniem jest UTF-8. Java API, które przetwarzają dane tekstowe zakodowane znakowo będzie teraz domyślnie używać UTF-8 na wszystkich platformach, niezależnie od ustawień systemowych i ustawień regionalnych. Aby przywrócić stare zachowanie, w którym kodowanie jest wybierane z uwzględnieniem ustawień regionalnych systemu, możesz użyć parametru „-Dfile.encoding=COMPAT”.

Kolejną z wyróżniających się zmian jest on przeprojektowałem implementację API java.lang.reflect (Core Reflection), przeznaczony do pozyskiwania informacji o metodach, polach i konstruktorach klas, a także dostępu do wewnętrznej struktury klas. api java.lang.reflect sam się nie zmienił, ale jest teraz zaimplementowany przy użyciu identyfikatorów metod udostępnianych przez moduł java.lang.invoke, zamiast używać generatorów kodu bajtowego. Zmiana pozwoliła ujednolicić i ułatwić utrzymanie wdrożeń java.lang.reflect i java.lang.invoke.

Oprócz tego wspomina się również, że proponowana jest trzecia wstępna implementacja Vector API, który udostępnia funkcje do obliczeń wektorowych, które są wykonywane przy użyciu instrukcji wektorowych procesorów x86_64 i AArch64 i umożliwiają jednoczesne stosowanie operacji na wielu wartościach (SIMD). W przeciwieństwie do możliwości zapewnianych w kompilatorze HotSpot JIT do automatycznej wektoryzacji operacji skalarnych, nowe API umożliwia jawną kontrolę wektoryzacji w celu równoległego przetwarzania danych.

Podkreśla się również, że dodano interfejs SPI (interfejs usługodawcy) do rozwiązywania nazw hostów i adresów IP, co pozwala na użycie alternatywnych przeliczników w java.net.InetAddress, które nie są powiązane ze sterownikami dostarczonymi przez system operacyjny.

Z drugiej strony zostało to zaproponowane druga wstępna implementacja Foreign Function & Memory API, za pomocą którego aplikacje mogą wchodzić w interakcje z kodem i danymi poza środowiskiem wykonawczym Java. Nowe API umożliwia wydajne wywoływanie funkcji innych niż JVM y dostęp do pamięci który nie jest zarządzany przez JVM. Na przykład możesz wywoływać funkcje z zewnętrznych bibliotek współdzielonych i uzyskiwać dostęp do danych procesu bez korzystania z JNI.

Dodano druga eksperymentalna implementacja dopasowywania wzorców w wyrażeniach przełącznik, co pozwala na używanie elastycznych szablonów zamiast dokładnych wartości w tagach „case”, obejmujących jednocześnie kilka wartości, co wcześniej wymagało niewygodnych ciągów wyrażeń „if...else”.

Pakiet zawiera com.sun.net.httpserver, który zawiera narzędzie jwebserver i API biblioteki wraz z wdrożeniem z prostego serwera http do obsługi zawartości statycznej (kontrolery CGI i serwletopodobne nie są obsługiwane). Wbudowany serwer http nie jest zoptymalizowany pod kątem obciążeń i nie obsługuje kontroli dostępu ani uwierzytelniania, ponieważ jest przeznaczony przede wszystkim do użytku w procesie tworzenia prototypów, debugowania i testowania projektów.

Z innych zmian które wyróżniają się:

  • JavaDoc obsługuje tag „@skrawek» osadzanie działających przykładów i fragmentów kodu w dokumentacji API, do której można uzyskać dostęp za pomocą narzędzi do walidacji, podświetlania składni i integracji z IDE.
  • Przestarzałe i zostaną usunięte w przyszłej wersji, mechanizm uzupełniania, a także powiązane metody, takie jak Object.finalize(), Enum.finalize(), Runtime.runFinalization() i System.runFinalization().
  • śmieciarze ZGC (Z Garbage Collector), SerialGC i ParallelGC obsługują deduplikację ciągów.

Jawa SE 18 jest klasyfikowana jako zwykła wersja wsparcia, z aktualizacjami, które zostaną wydane przed następną wersją. Gałąź wsparcia długoterminowego (LTS) powinna być Java SE 17, która będzie otrzymywać aktualizacje do 2029 roku.

Należy pamiętać, że począwszy od wydania Java 10, projekt przeszedł na nowy proces rozwoju, co oznacza krótszy cykl tworzenia nowej wersji. Nowa funkcjonalność jest obecnie rozwijana w stale aktualizowanym oddziale głównym, który obejmuje już wprowadzone zmiany i z których co pół roku gałęzie rozgałęziają się w celu ustabilizowania nowych wydań.

Pobierz Javę SE 18

Osoby zainteresowane testowaniem tego nowego wydania powinny wiedzieć, że kompilacje są gotowe dla systemu Linux (x86_64, AArch64), Windows (x86_64) i macOS (x86_64, AArch64) i można je uzyskać z linku poniżej.


Treść artykułu jest zgodna z naszymi zasadami etyka redakcyjna. Aby zgłosić błąd, kliknij tutaj.

Bądź pierwszym który skomentuje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany.

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.