Po sześciu miesiącach rozwoju, Oracle ogłosiło wydanie Java SE 24, bazujący na projekcie open source OpenJDK, zachowujący wsteczną kompatybilność, dzięki czemu większość wcześniej opracowanych projektów będzie mogła nadal działać bez modyfikacji.
W przeciwieństwie do wersji z długoterminowym wsparciem (LTS) Java SE 24 to wersja standardowo obsługiwana, co oznacza aktualizacje do czasu następnej wersji. Użytkownicy oczekujący długoterminowej stabilności mogą spodziewać się, że Java SE 21 i Java SE 17 będą wspierane odpowiednio do 2031 i 2029 roku. Ponadto rozszerzone wsparcie Java SE 8 LTS będzie kontynuowane do 2030 roku, natomiast Java SE 11 pozostanie w mocy do 2032 roku.
Ulepszenia i nowe funkcje
W tej nowej wersji Java SE 24, która jest prezentowana, jednym z najważniejsze ulepszenia jest wprowadzenie Eksperymentalny tryb generatywny dla śmieciarki Shenandoah (przeznaczony do oddzielnego przetwarzania nowych i starych obiektów). Ten nowy tryb zwiększa efektywność czyszczenia krótkotrwałych obiektów, optymalizuje wykorzystanie pamięci i zapewnia stabilniejszą pracę przy zmiennych obciążeniach.
Kolejną wyróżniającą się nowością jest Eksperymentalne wsparcie dla kompaktowych nagłówków obiektów w HotSpot JVM, zmniejszając jego rozmiar z 96 do 64 bitów w systemach 64-bitowych. Taka optymalizacja pozwala zredukować rozmiar sterty i zwiększyć wydajność pamięci podręcznej.
Śmieciarka G1 został również zoptymalizowany dzięki nowemu projektowi z barier monitorujących dostęp aplikacji do pamięci. Rozszerzenie bariery jest teraz wykonywane na późniejszym etapie kompilacji, w kompilatorze C2 JIT, co zmniejsza jego obciążenie nawet o 20%, w zależności od typu aplikacji.
Ulepszenia w zakresie bezpieczeństwa i szyfrowania
Java SE 24 wprowadza API dla wyprowadzanie kluczy kryptograficznych (KDF), umożliwiając generowanie dodatkowych kluczy z klucza tajnego i dowolnego zestawu danych. Ten interfejs API, będący nadal w fazie wersji zapoznawczej, zwiększa bezpieczeństwo zarządzania kluczami w ramach platformy.
Ponadto, Dodano ostrzeżenia dotyczące korzystania z interfejsów API Natywny interfejs Java oraz funkcje obce i pamięć, przygotowując się do przyszłej implementacji trybu integralności, który ograniczy domyślny dostęp do kodu natywnego. Włączono również ostrzeżenia podczas korzystania z metod dostępu do pamięci zewnętrznej za pośrednictwem klasy sun.misc.Unsafe, zalecając migrację do interfejsu API VarHandle.
Z drugiej strony w Java SE 24 obsługa algorytmów kryptograficznych ML-KEM i ML-DSA (zaprojektowany tak, aby być odporny na ataki komputerów kwantowych). Algorytmy te opierają się na problemach teorii sieci, co zapewnia, że czasy rozwiązania są takie same zarówno na komputerach konwencjonalnych, jak i kwantowych.
Menedżer zabezpieczeń Java, który został wycofany po zniknięciu obsługi wtyczek do przeglądarek, został trwale usunięty.
Optymalizacje
JVM HotSpot umożliwia teraz wczesne wstępne ładowanie i łączenie klas, co znacznie przyspiesza uruchamianie aplikacji. Przy pierwszym uruchomieniu stan klas jest buforowany w celu ułatwienia ładowania przy kolejnych uruchomieniach.
również, Ulepszono implementację wartości zakresowych, który teraz pumożliwia współdzielenie niezmiennych danych pomiędzy wątkami bardziej efektywnie, zastępując tradycyjny mechanizm zmiennych lokalnych wątku. Jest to szczególnie przydatne podczas jednoczesnej pracy z milionami wątków wirtualnych.
Kolejną nowością jest optymalizacja wątków wirtualnych w stanach zablokowanych. W tej wersji zablokowany wątek wirtualny zwalnia wątek platformy, dzięki czemu może być on ponownie wykorzystany przez inne wątki, co poprawia skalowalność w systemach o dużym wykorzystaniu wielowątkowości.
z inne zmiany, które się wyróżniają:
- Nowe rozszerzenie Stream API umożliwiające definiowanie niestandardowych operacji pośrednich.
- Silniki dopasowywania wzorców zostały udoskonalone, aby obsługiwać typy prymitywne (int, byte, char itp.) w wyrażeniach switch i operatorze instanceof.
- Dodano czwartą wersję zapoznawczą interfejsu API współbieżności strukturalnej, która upraszcza tworzenie aplikacji wielowątkowych, traktując zadania w różnych wątkach jako pojedynczą jednostkę wykonawczą.
- Wprowadzono prostszy sposób deklarowania klas i definiowania metody main(), eliminując potrzebę definiowania klasy publicznej ze statycznymi metodami.
- Dodano interfejs API plików klas, dzięki któremu można łatwiej i programowo analizować, generować i przekształcać pliki klas Java.
Wreszcie, jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się ze szczegółami w następujący link.
Pobierz Javę SE 24
Dla zainteresowanych instalacją nowej wersji Java SE 24 warto wiedzieć, że kompilacje (JDK, JRE i Server JRE) są już gotowe Linux, Windows i macOS.