Zaawansowane aspekty języka Java

2150 PLN+23% VAT (2644 PLN brutto / 1 os.)

Czas trwania szkolenia:2 dni (16h)

Kod kursu:J/EXT

Poziom zaawansowania:
java

Dostępne terminy

  • Termin
  • Trener
  • Cena
  • Zapis
  • Lokalizacja

Termin:

25 marzec
Trwają zapisy na szkolenie

Trener:

Mateusz Kamiński

Cena:

2150 PLN netto+23% VAT

Lokalizacja:

Zdalne
Zdalne

Termin:

6 czerwiec
Trwają zapisy na szkolenie

Trener:

Mateusz Kamiński

Cena:

2150 PLN netto+23% VAT

Lokalizacja:

Zdalne
Zdalne

Termin:

23 wrzesień
Trwają zapisy na szkolenie

Trener:

Mateusz Kamiński

Cena:

2150 PLN netto+23% VAT

Lokalizacja:

Zdalne
Zdalne

Termin:

12 grudzień
Trwają zapisy na szkolenie

Trener:

Mateusz Kamiński

Cena:

2150 PLN netto+23% VAT

Lokalizacja:

Zdalne
Zdalne

Interesuje Cię szkolenie stacjonarne lub nie odpowiada Ci żaden z dostępnych terminów?

Ikona pytaniaZapytaj o szkolenie

O szkoleniu Zaawansowane aspekty języka Java

W cenie otrzymasz:

  • Materiały szkoleniowe
  • Certyfikat ukończenia szkolenia
  • W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki

Dla kogo?

  • Osób, które chcą poznać język Java na wyższym poziomie oraz dowiedzieć się, jakie są możliwości optymalizacji działania aplikacji z wykorzystaniem dostępnych narzędzi, i technik programistycznych

Wymagania

  • Podstawowa umiejętność programowania w języku Java

Zalety

  • Przekrojowe omawianie zagadnień oraz przykłady oparte o życiowe problemy
  • Promowanie obowiązujących konwencji i dobrych praktyk programistycznych
  • Minimalna teoria oparta na praktycznych przykładach i warsztatach
  • Praktyczna wiedza uwzględniająca zmiany wprowadzone w najnowszych wydaniach Javy

Cele szkolenia

  • Nabycie umiejętności zaawansowanego programowania w Javie z uwzględnieniem nowości wprowadzanych do języka
  • Poznanie niuansów języka Java i ich wpływ na wydajność napisanego kodu
  • Zastosowanie technik i standardowo dostępnych narzędzi dla osiągnięcia jeszcze bardziej wydajnej aplikacji końcowej

Program

Zaawansowane aspekty praktycznego użycia Javy

  • Zasady tworzenia własnych adnotacji i ich procesowanie z wykorzystaniem refleksji
  • Typy generyczne z operatorami extend / super / &
  • Typy wyliczeniowe jako obiekty typu Singleton lub fabryki obiektów
  • Wprowadzenie do typów zapieczętowanych (sealed types) i ich praktyczne zastosowanie
  • Interpolacja Stringów oraz praktyczne tworzenie własnych implementacji String Template

Programowanie funkcyjne w Javie

  • Zasady programowania funkcyjnego jako podstawa współczesnego programowania
  • Lambdy i interfejsy funkcyjne
  • Typowe błędy w tworzeniu typów niemutowalnych w Javie
  • Rekordy a ich zastosowanie w programowaniu funkcyjnym
  • Pattern matching z wykorzystaniem konstrukcji if / switch oraz typów zapieczętowanych
  • Typowe błędy podczas używania typów Optional / Stream
  • Prymitywne odpowiedniki strumieniu i interfejsów funkcyjnych
  • NIO a funkcyjność
  • Budowanie zaawansowanego procesowania danych z wykorzystaniem strumieni i złożonych kolektorów
  • Obiektowe wzorce projektowe a programowanie funkcyjne

Optymalizacja obliczeń

  • Wołanie natywnych aplikacji z wykorzystaniem Process API oraz Foreign Linker API
  • Optymalizowanie procesowania Stringów w różnych praktycznych scenariuszach
  • Vector API jako alternatywa dla bezpośredniego paralelizmu

Wirtualne wątki

  • Porównanie wątków fizycznych i wirtualnych
  • Potencjalne problemy w używaniu wirtualnych wątków
  • Structured Concurrency - nowe spojrzenie na programowanie asynchroniczne w Javie
  • Popularne frameworki a wirtualne wątki

Modularność Javy (JPMS)

  • Wprowadzenie do JPMS
  • Problemy we wprowadzaniu modułów do istniejących aplikacji
  • Budowanie własnych, zoptymalizowanych obrazów JVM
  • Budowanie modularnych aplikacji z wykorzystaniem serwisów

Rozszerzenia Języka Java z wykorzystaniem popularnych bibliotek (Opcjonalnie)

  • Lombok - zastosowanie zaawansowanych adnotacje @ExtensionMethod, @SuperBuilder, @Accessors
  • MapStruct - wykorzystanie jako konstruktor kopiujący / deep cloning
  • Jackson / Gson - nietypowe przypadki związane z serializacją obiektów do formatu JSON

Platforma GraalVM / Coordinated Restore at Checkpoint (CRaC) (Opcjonalnie)

  • Problemy we wdrażaniu aplikacji opartych na Wirutalnej Maszynie Javy
  • Omówienie platformy GraalVM
  • Budowanie natywnych aplikacji Java w GraalVM
  • Polyglot API (inne języki programowania w ramach JVM)
  • Coordinated Restore at Checkpoint (CRaC) - alternatywa dla natywnej aplikacji

Podobne szkolenia