Java 11
Java 11 jest już z nami od ponad roku. Jest ona najnowszym LTS’em, do czasu wydania Java 17, która zadebiutuje we wrześniu 2021. Jeśli jeszcze nie udało Ci się zapoznać ze zmianami – to pora to nadrobić 😊
Opis najnowszej wersji Java 13 znajdziesz w artykule Java 13 – wideo prezentacja wszystkich jej możliwości
Przy której wersji Java zostają programiści?
Zapytałem programistów, którą wersje Java stosują w swoich projektach. Zazwyczaj – nie jedną. Poniżej wyniki ankiet.
Zamiany w Java 11
- Java FX 11
- Read-Eval-Print Loop (REPL) – Java 11 dostała własną powłokę poleceń, które dobrze są znane w Python i Ruby. Funkcjonalność tę wprowadzono w ramach noLTS Java 9. Umożliwia ona na wykonywanie operacji arytmetycznych, pisaniu i modyfikowaniu metod oraz szybkiego uruchamiania pojedynczych klas napisanych w Java.
- Zmienna var – daje możliwość wnioskowania jaki typ ma być przyporządkowany dla wyrażenia np.:
var value = 3 + 3; // int
var user = list.stream()
.filter(element -> element.equals(readUser))
.collect(Collectors.toList()); // List<User>
Zwalnia to programistę z konieczności wyboru i deklaracji typu. Chociaż dla mnie osobiście jest to zmiana, która może wywołać większy chaos w kodzie niż pozwoli osiągnąć jakiekolwiek korzyści. - Wdrożono implementacje – TLS 1.3 (JEP 332, Post-handshake authentication i Signed Certificate Timestamps
- Dodano implementacje algorytmów kryptograficznych Curve25519 i Curve448 oraz kluczy ChaCha20 i Poly1305
- Dodano dwa Garbage collectory ZGC – który jest bardzo wydajny, nie zwraca on pamięci do systemu (poprawiono to w ramach Java 13). Drugi GC Epsilon, który nie wykonuje żadnych operacji i jego celem jest sprawdzenie jak aplikacja będzie zachowywała się przy wysokim zużyciu pamięci.
- Zostały usunięte moduły, które były oznaczone adnotacja @Deprecated – Javy EE (aby zmniejszyć uzależnienie JavaEE od JavaSE) oraz CORBA
- Flight Recorder jako nowy profiler dla JVM
- Rozbudowano API dla String – doszły nowe metody między innymi isBlank(), strip() stripLeading() stripTrailing()