encyklopedia.run.place

Java 10

Java 10 (oznaczenie techniczne JDK 10) to dziesiąta główna wersja platformy programistycznej Java, wydana przez Oracle Corporation 20 marca 2018. Była pierwszą wersją udostępnianą w modelu cyklu wydawniczym co‑sześcio‑miesięcznym, co oznaczało krótszy czas między kolejnymi major releases w porównaniu z wcześniejszymi wersjami (np. Java 8, Java 9).

Główne cele wersji

Java 10 miała na celu przede wszystkim:

  • Usprawnienie JDK pod kątem wydajności i rozmiaru kodu.
  • Wprowadzenie udoskonaleń językowych, które zwiększają produktywność programistów.
  • Ułatwienie utrzymania i rozwoju platformy dzięki wprowadzeniu systemu modułów z Java 9.

Najważniejsze nowości

1. Inferencja typów zmiennych lokalnych (var)

Jedną z najbardziej przełomowych zmian była możliwość użycia słowa kluczowego var w deklaracjach zmiennych lokalnych. Kompilator automatycznie wywnioskuje typ zmiennej na podstawie przypisania, co upraszcza kod, zwłaszcza w połączeniu z wyrażeniami lambd i Streams API.

var list = new ArrayList<String>(); // typ listy to ArrayList<String>
var sum = 10 + 20; // typ sum to int

Uwaga: var nie może być używany do deklaracji pól klasy ani parametrów metod.

2. Zbiorcze zmiany w Garbage Collector (GC)

Java 10 wprowadziła gromadzenie nieużywanych obiektów z trybem parallel full GC oraz usprawnienia w G1 GC, które przyspieszają pełne czyszczenie pamięci i zmniejszają czas zatrzymań (stop‑the‑world).

3. Wydajność i rozmiar obrazów JDK

Wprowadzono narzędzie jlink, które umożliwia tworzenie obrazów runtime (custom runtime images) zawierających jedynie niezbędne moduły. Dzięki temu aplikacje mogą mieć mniejszy rozmiar i krótszy czas uruchamiania.

4. Zmiany w API

  • Nowa metoda Collection.stream() w java.util.Collection została oznaczona jako domyślna.
  • Rozszerzony java.nio.file o Files.mismatch – szybka metoda porównywania plików.
  • Ulepszenia w java.time – np. metoda LocalDate.now(Clock).

System modułów

Java 10 kontynuuje wprowadzony w Java 9 system modułów (Project Jigsaw). Dzięki jlink programiści mogą teraz łatwiej definiować własne zestawy modułów, co zwiększa bezpieczeństwo (mniej powierzonych klas), zmniejsza rozmiar dystrybucji i przyspiesza uruchamianie aplikacji.

Zgodność i migracja

Java 10 jest w pełni kompatybilna ze wcześniejszymi wersjami języka, ale migracja z wersji Java 8 wymaga uwzględnienia następujących aspektów:

  • Usunięcie przestarzałych metod i klas z java.util (np. SecurityManager w niektórych kontekstach).
  • Weryfikacja użycia var – niezamierzone może prowadzić do nieczytelnego kodu.
  • Zapewnienie, że wszystkie zależności są dostępne w postaci modułów lub mogą działać w trybie classpath.

Wsparcie i dalszy rozwój

Jak każda wersja Java, także i Java 10 posiada ograniczony okres wsparcia. Oracle zapewniło publiczne aktualizacje bezpieczeństwa do września 2020 r., po czym zalecane jest przejście do kolejnych wydań LTS (Long‑Term Support), np. Java 11.

Powiązane pojęcia