Zaawansowane programowanie w języku Java

LICZBA DNI: 4 (32h)

KOD KURSU: J/DET

POZIOM SZKOLENIA:

# java

Najbliższy termin:

12 kwietnia 2021

PROWADZI:

Michał Podbielski

3550 PLN netto + 23% VAT

Jeszcze 8 miejsc w tej cenie.

  • stacjonarne

STACJONARNE

W CENIE

  • 4 dni pracy z trenerem
  • Materiały szkoleniowe
  • Lunch
  • Certyfikat ukończenia szkolenia

Czy wiesz, że możesz uzyskać nawet do 100% dofinansowania na szkolenie? Dowiedz się jak »

Oferta dla firm

Dostosuj zakres, czas i miejsce szkolenia do potrzeb Twojego zespołu. Uzyskaj indywidualną wycenę szkolenia dla grupy.

Weź udział w szkoleniu

Termin

Lokalizacja

Trener

Cena / os

12

kwietnia

Warszawa,

3550 PLN netto
+ 23% VAT

Termin

12

kwietnia

Lokalizacja

Warszawa,

Trener

Cena / os

3550 PLNnetto
+ 23% VAT

Powiadom
o kolejnych terminach

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
  • 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
  • Reference i ReferenceQueue
  • SoftReference
  • WeakReference i WeakHashMap
  • PhantomReference i Cleaner
  • Cykl życia obiektu i wycieki pamięci (opcjonalnie)

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.