Kurs Java

Premiera Javy 18

Kolejny marzec i kolejna parzysta wersja Javy, tym razem 18. Zobaczmy co nowego w Javie, która 22 marca uzyskała status General Availability.

Java 18 - 22 marca 2022

  • Przygotowanie do usunięcia mechanizmu finalizacji

    Pierwsza nowość, o której chcę wspomnieć, to przygotowanie do usunięcia mechanizmu, który znajduje się w Javie od jej pierwszej wersji. Tak zwana finalizacja służy między innymi do unikania wycieku zasobów, spowodowanego brakiem zwolnienia uchwytów do plików.

    Aktualnie finalizacja nadal będzie włączona, ale można ją całkowicie wyłączyć za pomocą opcji wiersza poleceń --finalization=disabled. Wyłączenie obejmuje wszystkie metody finalize(), wliczając w to bloki try-catch-finally.

    Zamiast bloków zwalniających zasoby (finally), należy użyć try-with-resources oraz mechanizmu cleaner (niektóre zasoby są zajęte na tyle długo, że nie współpracują dobrze z try-with-resources, więc Java 9 wprowadziła Cleaner, który pomaga w ich zwalnianiu).
  • Simple Web Server

    Narzędzie wiersza polecenia uruchomiające minimalnie wyposażony serwer sieci Web, który ma obsługiwać tylko pliki statyczne. Brak dostępnych funkcji CGI lub serwletów. Narzędzie będzie przydatne do tworzenia prototypów, testowania i kodowania ad hoc, zwłaszcza w kontekście edukacyjnym.

    W celu uruchomienia serwera wystarczy użyć komendy jwebserver. Domyślnie działa on na porcie 8000.
  • Domyślny UTF-8

    Ustalenie UTF-8 jako domyślnego zestaw znaków standardowych interfejsów API Java. Dzięki tej zmianie interfejsy API zależne od domyślnego zestawu znaków będą zachowywać się konsekwentnie we wszystkich implementacjach, systemach operacyjnych, lokalizacjach i konfiguracjach.
  • Reimplementacja rdzenia mechanizmu refleksji

    Ponownie zaimplementowane java.lang.reflect.Method, Constructor i Field. Stworzenie metody obsługującej podstawowy mechanizm refleksji, która zmniejszy koszty utrzymania i rozwoju zarówno interfejsów API java.lang.reflect, jak i java.lang.invoke.
  • Nowy tag dokumentacyjny @snippet

    Razem z Javą 18 dostajemy nowy tag @snippet. Ma on uprościć dołączanie przykładowego kodu źródłowego do dokumentacji API. Od teraz treść fragmentu kodu, który jest zawarty w wygenerowanej dokumentacji, to tekst między znakiem nowej linii po dwukropku (:) a zamykającym nawiasem klamrowym (}). Tag @snippet rozszerza możliwości przygotowania kodu w ramach dokumentacji. Jego główne zalety:
    • Ułatwienie walidacji fragmentów kodu źródłowego poprzez zapewnienie dostępu API do tych fragmentów kodu w dokumentacji.
    • Włączenie nowoczesnych stylów, takich jak podświetlanie składni, a także automatyczne łączenie nazw z deklaracjami.
    • Umożliwienie lepszej obsługi z poziomu IDE w celu tworzenia i edytowania fragmentów kodu.
    • Usunięcie potrzeby stosowania znaków ucieczki dla znaków takich jak <, >, & (w encjach HTML) oraz dla znaczników komentarzy dokumentacji.
  • Pattern Matching for switch [preview]

    Kolejna wersja podglądu dopasowywania wzorców dla wyrażeń i instrukcji switch. Zostało to pokazane w JDK 17. Rozszerzenie dopasowania wzorców o switch-a umożliwia testowanie wyrażenia względem wielu wzorców. Każdy z nich ma określoną akcję, dzięki czemu złożone zapytania zorientowane na dane mogą być wyrażane w sposób zwięzły i bezpieczny. Szerzej napiszemy o tym temacie, w momencie wypuszczenia wersji finalnej tego rozwiązania.
Poza wymienionymi powyżej nowościami zostało przygotowanych jeszcze kilka innych, które nie wydają się bardzo istotne. Natomiast zawsze warto przyjrzeć się pełnej liście zmian i dlatego podajemy linka — https://openjdk.java.net/projects/jdk/18.

Co nam daje Java 18? Przede wszystkim warto zwrócić uwagę na zmiany dotyczące finalizacji. W przyszłości usunięcie tego rozwiązania wymusi wykonanie zmian w kodzie starszych projektów.

Z innych nowości osobiście bardzo pozytywnie odbieram to, że w trakcie tworzenia dokumentacji, od teraz będzie można łatwiej wprowadzać do niej fragmenty kodu. Wbrew pozorom, w przypadku bardziej złożonych rozwiązań, znacząco ułatwia to zrozumienie istoty dokumentowanego zagadnienia.

Na koniec warto podkreślić też odświeżanie mechanizmu refleksji, co spotkało się z pozytywnymi opiniami na naszej grupie facebookowej.
Szukasz dobrego kursu nowej Javy? Mamy dla Ciebie kurs oparty na 150 przykładach.
Kurs od Javy 8 do 14
Kurs nowej Javy składa się z kursu Javy 8 oraz Javy od wersji 9 do 17.
Autor: Jarek Klimas
Data: 22 marca 2022
Labele:Backend, Poziom średniozaawansowany, Java Linki:
https://openjdk.java.net
Masz swoje przemyślenia na temat artykułu? Podziel się nimi!
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!

Stale się rozwijamy, a więc bądź na bieżąco!
Na ten adres będziemy przesyłać informacje o ważniejszych aktualizacjach, a także o nowych materiałach pojawiających się na stronie.
Polub nas na Facebooku:
Nasi partnerzy: stackshare
Javappa to również profesjonalne usługi programistyczne oparte o technologie JAVA. Jeśli chesz nawiązać z nami kontakt w celu uzyskania doradztwa bądź stworzenia aplikacji webowej powinieneś poznać nasze doświadczenia.
Kliknij O nas .


Pozycjonowanie stron: Grupa TENSE