Zaawansowane programowanie w języku Java

4350 PLN+23% VAT (5350 PLN brutto / 1 os.)

Czas trwania szkolenia:4 dni (32h)

Kod kursu:J/DET

Poziom zaawansowania:
java

Dostępne terminy

  • Termin
  • Trener
  • Cena
  • Zapis
  • Lokalizacja

Termin:

4 grudzień
Trwają zapisy na szkolenie

Trener:

Michał Podbielski

Cena:

4350 PLN netto+23% VAT

Lokalizacja:

Zdalne
Zdalne

Termin:

15 kwiecień
Trwają zapisy na szkolenie

Trener:

-

Cena:

4350 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 programowanie w języku 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?

  • Programiści chcący poznać język Java na zaawansowanym poziomie

Wymagania

  • Umiejętność programowania w języku Java
  • Przydatna znajomość podstaw Maven (użyte przy modułach)

Zalety

  • Szkolenie przedstawia skomplikowane aspekty języka Java w przystępny i użyteczny sposób
  • Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
  • Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
  • Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how

Cele szkolenia

  • Zapoznanie uczestników z zaawansowanymi aspektami programowania w języku Java

Program

Enumeracje

  • Więcej niż wyliczenia
  • Definiowanie metod w enumeracjach
  • Atrybuty w enumeracjach
  • Konstruktory w enumeracjach
  • API dla enumeracji

Tworzenie adnotacji

  • Podstawy adnotacji
  • Adnotacje na pakiecie
  • Introspekcja a adnotacje
  • Składnia tworzenia adnotacji
  • Adnotacje wielokrotne
  • Interfejs AnnotatedElement
  • Wzmianka o javax.annotation.processing

Dynamiczna Java

  • Dynamiczne tworzenie obiektów
  • Refleksja
  • Invokedynamic
  • Dynamiczne proxy
  • Wzmianka o module jdk.dynalink
  • Wzmianka o agentach

Typy generyczne

  • Użycie klas generycznych
  • Tworzenie typów generycznych
  • Tworzenie metod generycznych
  • Typy generyczne a dziedziczenie
  • Znaczniki (wildcards): ?, extends i super
  • Znaczniki wielokrotne
  • Porady użycia znaczników
  • Konwencje nazewnictwa
  • Kiedy potrzebny @SupressWarning("unchecked")?
  • Zacieranie typów (type erasure)
  • Porady tworzenia generyków
  • Problem metod generycznych z varargs (@SafeVarargs)
  • Typy generyczne a tablice
  • Rekursywne typy generyczne
  • Ograniczenia generyczności
  • Ciekawe przypadki (wzorce)

Programowanie funkcyjne

  • Interfejs funkcyjny
  • Wyrażenia lambda (składnia, użycie, wskazówki)
  • forEach w Iterable i Map
  • Referencje do metod i konstruktorów
  • Wybrane interfejsy funkcyjne
  • Metody prywatne, statyczne i domyślne w interfejsach
  • Złączanie metod (functional composition)
  • Strumienie plików, tablic, kolekcji, adhoc
  • Praca na strumieniach: filtrowanie, redukowanie, przekształcanie
  • Kończenie strumieni z i bez agregacji
  • Strumienie typów prostych
  • StreamSupport
  • Czytelne strumienie
  • Kiedy strumienie, a kiedy nie
  • Dokładniej Optional i Collectors
  • Strumienie współbieżne
  • Gdzie jeszcze API funkcyjne

Moduły

  • public zbyt publiczny
  • Co dają moduły
  • Moduły nienazwane i automatyczne
  • Struktura i nazewnictwo modułów
  • Deskryptor modułu
  • Dostęp do zawartości modułu
  • Dostęp dla refleksji
  • Moduły wymagane
  • Udostępnianie i otwieranie pakietów
  • Dostarczanie i używanie usług
  • Dystrybucja usług
  • Moduły a ServiceLoader
  • Kompilacja modułu
  • Pakowanie modułu (modular JAR)
  • Uruchamianie modułu
  • jlink i moduł aplikacji
  • JAR modułu dla wielu wersji Java (multi-release)
  • Opcje Java dla modułów
  • Upgradeable modules
  • Opcje hakowania modułów
  • Wzmianka o narzędziach
  • Wzmianka o warstwach modułów
  • Migracja do modułów
  • jdeps - analiza zależności
  • Problemy migracji do modułów
  • Pliki atrybutów
  • Testowanie modułów
  • Wzmianka o jmod

Specjalne referencje (OPCJONALNE)

  • Reference i ReferenceQueue
  • SoftReference
  • WeakReference i WeakHashMap
  • PhantomReference i Cleaner
  • Cykl życia obiektu i wycieki pamięci (opcjonalnie)

Podobne szkolenia