Programowanie w języku Java
Czas trwania szkolenia:5 dni (40h)
Kod kursu:J/PROG
Poziom zaawansowania:
O szkoleniu Programowanie w języku Java
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
Dla kogo?
- Programiści chcący poznać język Java
Wymagania
- Umiejętność programowania w jakimkolwiek języku
Zalety
- Szeroki zakres aspektów programowania, pozwalający na wytwarzanie aplikacji w Java
- Szkolenie stale aktualizowane do najnowszych specyfikacji Java
- Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
- Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
- Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
Cele szkolenia
- Zdobycie umiejętności programowania w języku Java przy użyciu narzędzia IDE ułatwiającego szybki rozwój, testowanie i debugowanie aplikacji
- Poznanie konstrukcji językowych, standardowych bibliotek, podstaw wielowątkowości, obiektowości oraz wykorzystanie ich w tworzeniu wysokiej jakości, elastycznych rozwiązań
Program
Wprowadzenie
- Czym jest JVM
- Założenia i dystrybucje Javy
- Konwencje, pakiety, metoda main
- Kompilacja
- Sposoby uruchomiania aplikacji Java
- Dokumentacja JavaDoc
Typy danych i klasy
- Typy proste i ich konwersja
- Typy wyliczeniowe
- Tablice
- Przykłady typów obiektowych
- Odwołania do obiektów
- Wrappery, autoboxing i unboxing
- Tworzenie własnych klas
- Deklarowanie i przeciążanie metod
- Atrybuty klasy a zmienne lokalne
- Tworzenie konstruktorów
- Stałe i elementy statyczne
- Współpraca klas (widoczność i importowanie)
- Rekordy
Składnia języka
- Konwencje nazewnicze
- Operatory
- Operacje warunkowe
- Pętle
- Asercje
Obiektowość
- Klasa, obiekt i abstrakcja
- High cohension (wysoka zwartość klas)
- Dziedziczenie
- Operator instanceof
- Klasa Object
- Nadpisywanie metod
- Dziedziczenie a konstruktory
- Poziomy dostępu
- Ograniczenia dziedziczenia w Javie
- Dziedziczyć czy delegować
- Hermetyzacja
- Polimorfizm
- Interfejsy i klasy abstrakcyjne
- Loose coupling (luźne powiązanie)
Wyjątki
- Klasy sygnalizujące błędy
- Ścieżka błędu (stack trace)
- Obsługa wyjątków
- Tworzenie własnych wyjątków
- Zalecenia przy obsłudze błędów
Kolekcje
- Używanie klas generycznych
- Zbiory
- Mapy
- Listy
- Kolejki
- Kolejki dwustronne
- Łatwa inicjalizacja kolekcji
- Klasa Collections
- Wstęp do kolekcji wielowątkowych
Środowisko
- Atrybuty wykonania
- Zmienne systemowe
- Biblioteki jar
- String a wydajna praca
- Arrays jako pomoc dla tablic
- Klasa System
- Klasy reprezentujące czas
- Lokalizacja (l10n)
- Formatowanie dat i liczb
- Internacjonalizacja (i18n)
Operacje IO
- System plików (File, Path, Files)
- Zawartość plików - strumienie binarne i tekstowe
- Swobodny dostęp (RandomAccessFile)
- Strumienie wysokopoziomowe
- Serializacja obiektów
- Wstęp do pojęcia kanałów (NIO)
- Co jeszcze w NIO2
Pozostałe elementy języka
- Wstęp do modułów
- Blok static
- Więcej o enumeracjach
- Użycie adnotacji
- Podstawy testowania z JUnit
- Klasy wewnętrzne i anonimowe
Programowanie funkcyjne
- Wyrażenia Lambda
- Referencje do metod
- Interfejs funkcyjny i metody domyślne
- Metody prywatne w interfejsach
- Lambda i strumienie
- Klasa Optional
- Interfejs Function
Podstawy wielowątkowości
- Runnable, Thread, ThreadGroup
- Tworzenie własnych wątków
- Monitory i synchronizacja
- Współpraca między wątkami
- Problemy wielowątkowości
- Zmienne ulotne (volatile)
- Wstęp do java.util.concurrent
Najczęstsze błędy
- Na co uważać
- Czego unikać
Zaawansowane operacje na tekście (opcjonalne)
- Formatowanie napisów
- Regular expression (regex)
- Tokenizacja
Peryferia i integracja
- Współpraca z konsolą
- Tworzenie GUI w JavaFx
- Komunikacja za pomocą TCP
- Komunikacja z bazami danych (JDBC)