- Język i platforma Java – wprowadzenie
- Przegląd wersji i edycji. Instalacja i konfiguracja platformy Java SE
- Typy proste i referencyjne, operatory arytmetyczne i logiczne, instrukcje sterujące
- Zmienne: rodzaje, inicjalizacja, zasięg i przesłanianie
- Standardy nazewnicze
- Struktura projektu, pakiety, kompilacja, bajtkod, ładowanie klas, tworzenie JAR-ów
- Praca z Javą w konsoli oraz w IDE, przegląd dostępnych IDE
- Java na tle innych języków programowania
- Przegląd zastosowań Javy
- Programowanie obiektowe w Javie
- Składowe klasy: pola, metody, konstruktory, bloki inicjalizacyjne
- Obiekty i referencje, przekazywanie parametrów, klasy mutowalne i niemutowalne
- Przeciążanie metod
- Dziedziczenie i nadpisywanie metod
- Klasy abstrakcyjne, finalne i zamknięte (sealed)
- Interfejsy
- Implementacje metod w interfejsach
- Poziomy widoczności, metody dostępowe, wzorzec JavaBean
- Kontekst statyczny i instancyjny
- Wyjątki
- Uniwersalne elementy Java Standard Edition
- Tablice: zasady używania, metody narzędziowe
- Kolekcje: listy, kolejki, zbiory i słowniki
- Zasady wyboru właściwego rodzaju i implementacji kolekcji
- Zasady porównywania obiektów: metody equals i hashCode, interfejsy Comparable i Comparator, sortowanie danych
- Klasy opakowujące („wrappers”) i inne klasy reprezentujące liczby
- Użyteczne klasy narzędziowe
- Klasy String, StringBuilder i inne możliwości przetwarzania tekstu
- Wyrażenia regularne (regex)
- Wejście/wyjście i dostęp do plików
- Obsługa daty i czasu oraz ustawień lokalnych
- Wątki i synchronizacja
- Struktura maszyny wirtualnej Java (JVM)
- Tworzenie i konfiguracja wątków
- Zagrożenia wynikające ze współbieżnego wykonania kodu
- Synchronizacja za pomocą mechanizmów języka Java
- Klasy narzędziowe i gotowe schematy synchronizacji (locki, semafory, synchronizowane kolekcje, pule wątków)
- Zaawansowane elementy języka Java
- Typy wyliczeniowe (enum)
- Typy generyczne
- Klasy zagnieżdżone, lokalne i anonimowe
- Elementy programowania funkcyjnego w Javie
- Wyrażenia lambda i referencje do metod
- Strumienie, przetwarzanie danych za pomocą strumieni i kolektorów.
- Strumienie równoległe – korzyści i zagrożenia; Spliteratory
- Aplikacje z interfejsem graficznym (podstawy)
- Przegląd technologii GUI dostępnych w Javie
- Swing: komponenty, panele, layouty
- Obsługa zdarzeń; różne typy zdarzeń, wątki w Swingu
- Dostęp do baz danych z aplikacji Java
- JDBC: bezpośredni dostęp do bazy danych
- Zadawanie zapytań i wydawanie poleceń modyfikujących dane
- Obsługa parametrów, zapobieganie SQL injection
- Zaawansowane możliwości JDBC: modyfikacja poprzez wynik, wywoływanie procedur składowanych, transakcje
- Jakarta Persistence API (JPA / Hibernate)
- Pomysł ORM, generowanie klas na podstawie tabel lub odwrotnie
- Klasy encji, adnotacje JPA, zależności między encjami
- Odczyt wszystkich i pojedynczych rekordów
- Tworzenie i modyfikacja rekordów; transakcje
- Zapytania JPQL, parametry, kryteria
- JDBC: bezpośredni dostęp do bazy danych
- Serwlety
- Czym jest Java Enterprise Edition / Jakarta EE?
- Specyfikacje, implementacje, serwery aplikacji
- Technologia serwletów
- Obsługa zapytań i tworzenie odpowiedzi HTTP
- Nagłówki, parametry, ciasteczka
- Listenery i filtry
- Podstawy Java Server Pages (JSP – szablony stron WWW)
- Skryptlety, wyrażenia EL (expression language), dostęp do komponentów JavaBean
- Biblioteki tagów (taglibs), JSTL Core
- Architektura MVC za pomocą serwletów i JSP
- Czym jest Java Enterprise Edition / Jakarta EE?
- Usługi sieciowe w Jakarta EE
- Koncepcja, rodzaje i zastosowania usług sieciowych (web services)
- Usługi typu SOAP: JAX-WS
- Klasa i interfejs usługi
- Obsługa XML w Javie, w tym standard JAXB
- Strona klienta usługi SOAP, w tym generowanie kodu na podstawie WSDL
- Usługi typu REST: JAX-RS
- Klasy zasobów i mapowanie adresów
- Rola i właściwa implementacja zapytań GET, POST, PUT, DELETE
- Obsługa różnych formatów danych, w tym JSON i XML oraz dodatkowe własne rozszerzenia na przykładzie PDF
- Dodatkowe narzędzia
- Narzędzie budowania Maven (+pobieżnie Ant i Gradle)
- Projekt wielomodułowy Maven przy okazji serwera i klienta usługi sieciowej
- Popularne biblioteki open-source
- Testy jednostkowe JUnit
- Dodatkowe biblioteki związane z testowaniem: Mockito, AssertJ
- Budowanie aplikacji Java na serwerze Jenkins
- Narzędzie budowania Maven (+pobieżnie Ant i Gradle)
- Spring
- Tworzenie i uruchamianie projektu Spring Boot
- Spring MVC
- Klasy kontrolera, mapowanie adresów, obsługa parametrów
- Generowanie treści HTML za pomocą szablonów JSP i Thymeleaf (na szybko – głównie gotowe przykłady)
- Usługi typu REST za pomocą Spring
- Fundamentalne zasady działania Spring
- Komponenty – tworzenie, priorytety, zakresy
- Wstrzykiwanie zależności (dependency injection) – za pomocą adnotacji i przez konstruktor
- Odwrócenie kontroli (inversion of control, IoC)
- Spring Data
- Stosowanie JPA/Hibernate w ramach Spring
- Interfejsy typu @Repository i magiczne nazwy metod
- „Natywne” zapytania SQL
- Podstawy Spring Security
- Definiowanie użytkowników i haseł lokalnie oraz w bazie danych
- Kontrola dostępu do elementów usługi
- Przegląd dodatkowych możliwości Spring
- Usługi REST za pomocą Jersey (JAX-RS)
- Schematyczne usługi REST za pomocą RestRepositories
Kurs Java Developer (przyspieszony I + II)
K-JAVA-FAST-1-2Skondensowany kurs dla programistów innych języków
Obecnie brak terminów otwartych. Dostępne na zamówienie dla grup.
Tryb zdalny: online na żywo z trenerem i grupą (→ więcej o kursach zdalnych). Można: zrezygnować do 15 dni przed startem; w każdej chwili przejść na tryb zdalny; w razie potrzeby skorzystać z nagrań. Kursy dostępne na zamówienie, w terminie i lokalizacji do uzgodnienia , dla grup od 5 osób .
Cena kursu: 4990 PLN
lub 998 PLN miesięcznie (5 rat)
first minute (30+ dni do startu) - 3%
dostęp do nagrań w razie potrzeby
dla chętnych bezpłatnie warsztaty HR
praktyczne ćwiczenia i miniprojekty
poczęstunek w cenie
stanowisko komputerowe w cenie