Zakres tematyczny szkolenia
- Java – wstęp
- podstawy języka
- kompilacja i uruchamianie
- dokumentacja
- zasoby internetowe
- Narzędzia
- Eclipse
- narzędzia kontroli wersji i wspierające pracę zespołową
- Podstawy składni języka Java
- podstawowe pojęcia oraz słowa kluczowe
- typy danych: proste, obiektowe, tablice
- deklaracje klas, interfejsów, metod, zmiennych oraz modyfikatory dostępu
- operatory i przekazywanie argumentów metod
- instrukcje sterujące wykonaniem programu
- Programowanie obiektowe
- idea programowania obiektowego
- klasy, klasy abstrakcyjne i interfejsy
- dziedziczenie i polimorfizm
- dziedziczenie a modyfikatory dostępu
- agregacja i kompozycja – rozważania projektowe
- Zaawansowane elementy języka Java
- klasy wewnętrzne, klasy anonimowe, finalne, statyczne
- wyrażenia lambda, podstawy funkcyjności w Javie (od Java SE 8)
- wyjątki i błędy – hierarchia, wyjątki a polimorfizm
- adnotacje
- asercje
- garbage collector
- Kolekcje
- hierarchia kolekcji
- interfejsy Collection, Set, List, Map
- pojęcie kolekcji uporządkowanej i posortowanej
- klasy kolekcji z uwzględnieniem powyższych pojęć
- metody equals i hashCode
- interfejsy Clonable/Comparable
- głęboka kopia kolekcji
- kolekcje a dostęp współbieżny
- Wejście / wyjście
- dostęp do systemu plików za pomocą klasy File
- dostęp do systemu plików za pomocą interfejsu Path i klasy Files (od Java SE 7)
- strumienie binarne i znakowe
- RandomAccessFile
- standardowe wejście/wyjście
- kompresja
- serializacja (interfejs Serializable)
- Przetwarzanie tekstu
- szczegóły klasy String
- bufory tekstowe (StringBuilder, StringBuffer)
- wyrażenia regularne
- atomizacja (StreamTokenizer, StringTokenizer, Scanner)
- podstawy lokalizacji i formatowania
- obsługa daty i czasu w Javie
- Programowanie wielowątkowe
- pojęcie wątku, cykl życia wątku
- tworzenie wątku w Javie (Thread i Runnable)
- synchronizacja, zagrożenia synchronizacji
- wysokopoziomowe zarządzanie wątkami (Executor)
- Elementy programowania sieciowego
- podstawy architektury TCP/IP
- obsługa URL
- bezpośrednia obsługa gniazd UDP i TCP
- informacje o innych możliwościach obsługi komunikacji (serwlet, usługa sieciowa)
- Elementy graficznego interfejsu użytkownika (na przykładach)
- technologie AWT i Swing
- najważniejsze komponenty Swing: okno, menu, pola tekstowe, pola i listy wyboru, przyciski
- obsługa zdarzeń i powiązanie GUI z aplikacją
- podstawy rozmieszczania i formatowania elementów GUI
- Podstawy testowania, badania i podnoszenia efektywności aplikacji
- debugowanie
- profilowanie
- Pomocnicze biblioteki i technologie
- logowanie zdarzeń
- testy jednostkowe
- użyteczne biblioteki narzędziowe, w szczególności Apache Commons
- sposoby budowania aplikacji