Zaawansowane programowanie w języku Java

LICZBA DNI: 4 (32h)

KOD KURSU: J/DET

Powiadom
o kolejnych terminach

# java

Autor szkolenia:
Michał Podbielski

O szkoleniu

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

Cele szkolenia

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

Program

  • Więcej niż wyliczenia
  • Definiowanie metod w enumeracjach
  • Atrybuty w enumeracjach
  • Konstruktory w enumeracjach
  • API dla enumeracji
  • Podstawy adnotacji
  • Adnotacje na pakiecie
  • Introspekcja a adnotacje
  • Składnia tworzenia adnotacji
  • Adnotacje wielokrotne
  • Interfejs AnnotatedElement
  • Wzmianka o javax.annotation.processing
  • Dynamiczne tworzenie obiektów
  • Refleksja
  • Invokedynamic
  • Dynamiczne proxy
  • Wzmianka o module jdk.dynalink
  • Wzmianka o agentach
  • 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)
  • 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, reagowanie, 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
  • public zbyt publiczny
  • Co dają moduły
  • Moduły nienazwane i automatyczne
  • Struktura i nazewnictwo modułów
  • Deskryprot 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
  • Reference i ReferenceQueue
  • SoftReference
  • WeakReference i WeakHashMap
  • PhantomReference i Cleaner
  • Cykl życia obiektu i wycieki pamięci (opcjonalnie)

Nasi eksperci

POLITYKA COOKIES:

Korzystamy z plików cookies, by móc jak najlepiej dostosować stronę do Twoich potrzeb oraz wyświetlać Ci przydatne i adekwatnych dla Ciebie reklamy w serwisie i poza nim. Możesz kontrolować ustawienia ciasteczek w swoich ustawieniach swojej przeglądarki. Odwiedzając tę stronę, wyrażasz zgodę na wykorzystywanie przez nas plików cookies.