Kod: JVA-030
Czas trwania: 12 godzin
Czas trwania: 12 godzin
Opis szkolenia
Java w wersji 8 została znacznie zmieniona. Wprowadzono wiele długo oczekiwanych funkcji, dzięki którym język stał się efektywniejszy. Korzystanie z tych funkcji wymaga nowych podejść do programowania i dogłębnego zrozumienia nowych zasad.Szkolenie ma na celu pomóc uczestnikom w zrozumieniu nowych funkcji Javy 8. W kursie znalazły się wyrażenia lambda, strumienie danych, przetwarzanie strumieni danych z podejściem map-filter-reduce, programowanie asynchroniczne oraz interfejs programistyczny DateTime. Dla każdego kluczowego tematu przeznaczonych jest kilka zadań praktycznych, pozwalających uczestnikom na ćwiczenie nowych umiejętności.
Plan szkolenia
Wyrażenia Lambda- Składnia Lambda
- Interfejsy funkcjonalne
- Pakiet java.util.function oraz predefiniowane interfejsy funkcjonalne
- Referencje do metod
- Referencje do konstruktora
- Metody domyślne w interfejsach
- Metody domyślne a diamond problem
Strumienie
- Czym jest strumień?
- Sposoby tworzenia strumienia
- Podejście Map/Filter/Reduce
- Map/Filter/Aggregate
- Funkcje agregujące
- Reduce w przetwarzaniu sekwencyjnym i równoległym
- Metoda forEach
- Budowanie łańcucha konsumentów
- Predykaty
- Metoda peek
- Operacja map
- Operacja flatmap
- Agregacja i redukcja
- Typ Optional
- Kolektory
- Używanie kolektorów jako group by
- IntStream oraz inne strumienie specjalne
- Strumień Random
- Równoległe strumienie
Framework Fork/Join
- ForkJoinPool
- Klasy, używane dla Fork/Join
- Przykład Fork/Join
- Fork/Join a równoległe przetwarzanie strumieni: testy wzorcowe
Interfejs programistyczny Daty i Czasu
- Problemy z Datą i Kalendarzem w Java 8
- LocalDate, LocalTime, LocalDateTime
- Klasa Instant
- Klasa Clock
- ZonedDateTime
- Klasa DayOfWeek
- Klasa Duration
- Klasa Period
Programowanie asynchroniczne
- Problemy z wielowątkowością
- Programowanie równoległe i asynchroniczne
- Zalety podejścia asynchronicznego
- Podejście Javy 1 do wielowątkowości
- Podejście Javy 5: klasa Future
- Java 8 approach: klasa CompletableFuture
- Przepływ danych jako potok
- Tworzenie kilku potoków równolegle
- Tworzenie obiektów future
- Powiązanie obiektów future
- Synchroniczne i asynchroniczne metody CompletableFuture
- Użycie anyOf/applyToEither aby uzyskać najlepszy wyniky
- Przegląd metod CompletableFuture
- Obsługa wyjątków w CompletableFuture
- Użycie punktów kontrolnych w obsłudze metod
- Anulowanie CompletableFuture
- Użycie CompletableFuture w realnym przetwarzaniu przepływu danych
- Asynchronous APIs in Java