Java 8 i 9 – zmiany w języku i platformie
Opis
Język Java jak i cała platforma ma ugruntowaną pozycję w świecie inżynierii oprogramowania. Wersje 8 i 9 przyniosły wiele istotnych zmian, wprowadzając m. in. elementy programowania funkcyjnego, modułowość, REPL. Niniejsze szkolenie jest przeznaczone dla programistów, którzy znają język Java i chcieliby uzupełnić jego znajomość o nowe elementy z wersji 8 i 9. Istnieje możliwość zakrojenia zakresu tego szkolenia do zmian, które pojawiły się w wersji 9 lub też skupieniu się tylko na aspektach funkcyjnych.
Podstawowy program
Moduł. 2
Interfejsy funkcyjne
Moduł. 3
Wyrażenia lambda
Moduł. 4
Strumienie danych (Stream API)
Moduł. 5
Pakiet java.time.Package
Moduł. 7
Java Platform Module System (JPMS)
Moduł. 8
Zmiany w języku i JVM
Szczegółowy program
Moduł. 1
Wprowadzenie
- Przegląd zmian w wersji 8 języka Java
- Przegląd zmian w wersji 9 języka Java
Moduł. 2
Interfejsy funkcyjne
- Interfejsy z jedną metodą abstrakcyjną i ich implementacja
- Pakiet java.util.function
- Consumer
- Supplier
- Function
- UnaryOperator i BinaryOperator
Moduł. 3
Wyrażenia lambda
- Czym są wyrażenia lambda?
- Składnia lambda w języku Java
- Referencje do metod i konstruktorów
- Przykłady użycia wyrażeń lambda w zastosowaniu do realnych problemów
Moduł. 4
Strumienie danych (Stream API)
- Czym są strumienie danych?
- Interfejs java.util.Stream
- Mapowanie i filtrowanie
- Zbieranie danych z list i zbiorów
- Implementacja komparatorów z użyciem lambd
Moduł. 5
Pakiet java.time.Package
- Wprowadzenie do pakietu java.time
- Typy immutable i metody fabrykujące
- Problemy związane ze strefami czasowymi
- Jednostki czasu (period, duration)
Moduł. 6
JShell
- Czym jest JShell?
- REPL
- Rozpoczęcie sesji z JShell
- Wykonywanie instrukcji i wyrażeń złożonych
- Przeglądanie historii JShell
- Tworzenie klas
- Manipulowanie stanem obiektów
- Autouzupełnianie
- Obsługa wyjątków
- Importy
- Uzyskiwanie pomocy
Moduł. 7
Java Platform Module System (JPMS)
- Czym jest moduł?
- Nieco historii
- Cele JPMS
- Deklaracja modułu
- Przykładowa aplikacja modułowa
- Tworzenie własnego modułu
- Graf zależności między modułami
- Moduły a kod nie modułowy
- Automatyczne moduły
- Tworzenie własnego runtime’u z jlink
- ServiceLoaders
Moduł. 8
Zmiany w języku i JVM
- Metody prywatne w interfejsach
- Process API
- Reactive Streams
- Zmiany: Optional, Stream, Date, Time
- G1 w GarbageCollection
- Kompilator
- Wersjonowanie