Szkolenie: Przygotowanie do uzyskania certyfikatu OCP Java Developer
Najpopularniejszy i uznany na rynku certyfikat dla programistów Java
- Trenerzy praktycy
- Kameralne grupy
Czas trwania szkolenia:5 dni (40h)
Kod kursu:OCPJD
Przygotowanie do uzyskania certyfikatu OCP Java Developer
Cele szkolenia
Nabycie wiedzy i umiejętności programowania w języku Java w stopniu pozwalającym na przystąpienie do egzaminu uprawniającego do otrzymania certyfikatu OCPJD
Szczegółowe przedstawienie (zarówno od strony teoretycznej, jak i praktycznej) zagadnień obejmowanych przez egzamin, zwracając jednocześnie uwagę uczestników na specyficzne aspekty poszczególnych elementów języka Java
Dla kogo?
Osoby chcące przystąpić do egzaminu Oracle Certified Professional
Osoby chcące usystematyzować wiedzę w zakresie programowania w języku Java
Zalety
Szkolenie jest stale uaktualniane do pojawiających się kolejnych wersji języka w oparciu o wymagania najnowszych wersji certyfikatów
W trakcie kursu uczestnicy przyglądają się specyficznym aspektom języka zawartym w egzaminach, poznają przykładowe pytania i realizują próbne testy cząstkowe i całościowe
Szkolenie jest prowadzone przez trenerów, którzy uzyskali certyfikat OCPJD i wiedzą jak się do niego przygotować
Oprócz przygotowania do egzaminu szkolenie pomaga usystematyzować wiedzę dla programistów Java oraz może być sposobem na migrację do Javy z innego języka programowania
Wymagania
Od uczestników wymagana jest umiejętność programowania w stopniu podstawowym w dowolnym obiektowym języku
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
Program szkolenia
Wprowadzenie
Podstawowe informacje o certyfikacie OCP Java Developer
Podejście do egzaminu - formalności
Zasoby internetowe
Podstawy języka Java
Struktura klas, interfejsów i ich komponentów
Wykonywalne klasy Java, metoda main()
Pakiety, importowanie klas, import statyczny
Zakres widoczności, modyfikatory
Typy danych
Deklaracja i inicjalizacja zmiennych, identyfikatory
Zmienne typów prostych, tablicowych, wyliczeniowych, klasy opakowujące
Zmienne typów obiektowych, referencje do obiektów
Operatory przypisania, arytmetyczne, logiczne, priorytet operatorów
Instrukcje sterujące wykonaniem programu
Instrukcje warunkowe: if, else, switch
Switch jako wyrażenie
Pattern matching
Pętle for, for-each, while, do-while
Instrukcje break, continue, wykorzystanie etykiet
Operacje na tablicach
Tablice obiektów, deklaracja, alokacja, inicjalizacja
Tablice wielowymiarowe
Pola, metody i enkapsulacja
Zasięg zmiennych
Zmienne składowe obiektu i klasy (pola)
Deklaracja metod, parametry, wartość zwracana
Przekazywanie argumentów do metod
Przeładowanie metod (overload)
Konstruktory, bloki inicjalizacyjne
Cykl życia obiektu
Enkapsulacja
Dziedziczenie
Dziedziczenie z użyciem klas i interfejsów
Dziedziczenie a zakres widoczności
Dziedziczenie a przypisania, operator instanceof
Używanie konstruktorów i metod nadklasy
Polimorfizm, rzutowanie, overload a override
Wyjątki i asercje
Koncepcja sytuacji wyjątkowych w Java
Typy sytuacji wyjątkowych (klasy Exception, RuntimeException, Error)
Obsługa wyjątków (klauzule try, catch, multi-catch, finally, try-with-resources)
Przegląd wybranych wyjątków
Tworzenie zasobów auto-closeable
Wykorzystanie asercji
Praca z podstawowymi klasami z JDK
Klasa String, StringBuffer, StringBuilder
Operacje na napisach, równość napisów
Interfejs List, klasa ArrayList
Zaawansowane pojęcia związane z klasami
Użycie klas: static inner class, local class, nested class, anonymous inner class
Użycie typu enum
Sealing classes
Records
Tworzenie i używanie wyrażeń lambda
Podstawowe wzorce projektowe
Kolekcje oraz typy generyczne
Tworzenie i wykorzystywanie klas ArrayList, TreeSet, TreeMap, ArrayDeque
Wykorzystanie interfejsów java.util.Comparator i java.lang.Comparable
Koncepcja strumieni w kontekście kolekcji
Tworzenie i wykorzystywanie typów generycznych
Interfejsy funkcyjne oraz Stream API
Wyrażenie lambda
Przegląd interfejsów funkcyjnych w pakiecie java.util.function
Wersje interfejsów funkcjonalnych dla typów prostych
Wykorzystanie strumieni
Wyszukiwanie danych przy użyciu metod findFirst(), findAny(), anyMatch(), allMatch(), noneMatch()
Sortowanie danych
Użycie metod z klasy Collectors
Wykorzystanie klasy Optional
Zagadnienia związane z Date/Time API
Użycie klas LocalDate, LocalTime, LocalDateTime, Instant, Period i Duration
Zarządzanie kodem obsługującym różne strefy czasowe
Formatowanie dat
Obsługa Wejścia/Wyjścia
Koncepcja strumieni w Java
Rodzaje strumieni
Strumienie Binarne (InputStream, OuputStream i pochodne)
Strumienie Znakowe (Reader, Writer i pochodne)
Zagadnienia kodowania w strumieniach znakowych
Łączenie strumieni
Strumienie skojarzone z plikami oraz interakcja z systemem plików klasy (File, RandomAccessFile, FileOutputStream,FileInputStream)
Interfejs Serializable
Serializacja obiektów do strumieni (ObjectOutputStream,ObjectInputStream)
Modyfikacja domyślnej serializacji
Standardowe wejście/wyjście
Przykłady strumieni specjalizowanych
File I/O z NIO.2
Operowanie na ścieżkach do plików i katalogów z użyciem klasy Path
Kopiowanie, przenoszenie, usuwanie plików z użyciem klasy Files
Rekurencyjna nawigacja po drzewie katalogów
Odczyt i zmiana atrybutów plików i katalogów
Znajdowanie plików przy użyciu klasy PathMatcher
Podstawy JDBC
Rejestracja sterownika
Wykonywanie zapytań
Transakcje
Projektowanie warstwy dostępu do danych
Wydajność i zarządzanie zasobami
Struktura pamięci
Metoda finalize i Garbage Collector
Monitorowanie zasobów wirtualnej maszyny
Programowanie aplikacji wielowątkowych
Konstrukcja wątków w Javie (Runnable i Thread)
Cykl życia wątku
Scheduler (zasada działania i priorytety)
Metody yield, join, sleep
Grupy wątków
Zagadnienia synchronizacji (wait, notify, notifyAll, zakleszczenie, zagłodzenie)
Klasy pakietu java.util.concurrent
Wykonawcy i pule
Fork/Join
Praca z Parallel streams
Internacjonalizacja i lokalizacja aplikacji
Odczyt i zmiana ustawień językowych
Tworzenie pakietów zasobów dla poszczególnych języków
Ładowanie i używanie zasobów językowych w aplikacji
Formatowanie danych z użyciem NumberFormat, DateFormat
Moduły Java
Java Platform Module System
Architektura modułów
Deskryptor modułu
Usługi