| Opis: |
Szkolenie adresowane jest do programistów, pragnących poznać język Java.
Cel szkolenia:
Celem szkolenia jest nabycie umiejętności programowania w języku Java, oraz zapoznanie się z platformą Java w zakresie umożliwiającym swobodne poruszanie się po specyfikacjach stowarzyszonych z JSE. Program szkolenia ułożony jest tak, by pokrywał większość zagadnień objętych certyfikatem SCJP, a zarazem dostarczał wiedzy niezbędnej do późniejszego zrozumienia platformy Java Enterprise Edition. Warsztaty prowadzone są z użyciem narzędzi stosowanych przy prawdziwych projektach (IDE, kontrola wersji, testowanie, notacja UML) tak, aby walory praktyczne szkolenia były jak największe.
W ramach szkolenia, oprócz podstaw języka, uczestnicy poznają między innymi: programowanie aplikacji desktop przy użyciu biblioteki Swing, programowanie sieci TCP/IP, a także zagadnienia RMI. Szkolenie obejmuje również podstawy Java Reflection AP JDBC, parsowania XML w Java, oraz wprowadzenie do Java Enterprise Edition.. |
| Program: |
Wprowadzenia do platformy java Podstawowe informacje o języku Rodzaje instalacji Narzędzia dostępne w instalacji JSE (kompilator, debuger, interpreter, generator dokumentacji i inne) Dokumentacja Sposoby dostarczania aplikacji Java SE (aplikacja klasyczna, aplet, java web start, plugin) Zasoby internetowe Kompilacja i uruchomienie pierwszego programu Konwencje obowiązujące w języku Java Narzędzia Eclipse, lub inne narzędzie wybrane przez zamawiającego ANT CVS Podstawy języka Deklaracja klas i interfejsów Deklaracja zmiennych typów prostych, tablicowych, wyliczeniowych i obiektowych Zakres widoczności - podstawy Klasy opakowujące Inicjalizacja zmiennych Metoda main i przekazywanie argumentów wywołania programu Podstawowa obsługa standardowego wejścia/wyjścia przekazywanie argumentów do metod Instrukcje sterujące wykonaniem programu Instrukcje warunkowe: if, else switch Pętle for, for-each, while, do-while Instrukcje break, continue, wykorzystanie etykiet Operatory, przypisania, konwersja i rzutowanie Programowanie obiektowe Deklaracja klas, klas abstrakcyjnych i interfejsów Tworzenie konstruktorów i inicjalizacja obiektów Składowe statyczne Encapsulation, Coupling, Cohesion Dziedziczenie Dziedziczenie a zakres widoczności Dziedziczenie a przypisania, operator instanceof Używanie konstruktorów i metod nadklasy Overload a override Klasa Object Podstawy UML Rozważania projektowe: agregacja, kompozycja, asocjacja, generalizacja Obsługa wyjątków i asercje Koncepcja sytuacji wyjątkowych w Java Typy sytuacji wyjątkowych (klasy Exception, RuntimeException, Error) Obsługa wyjątków (klauzule, try, catch, finally) Deklaracja metod wzbudzających wyjątki oraz wzbudzanie wyjątków (throws, throws) Wyjątki a dziedziczenie Przegląd wybranych wyjątków Projektowanie własnych typów wyjątków asercje Klasa Math, Operacje na napisach i formatowanie Metody Klasy Math Klasa String, StringBuffer, StringBuilder Operacje na napisach Atomizacja napisów i podstawy wyrażeń regularnych (metoda split, klasa StringTokenizer, Scanner, Pattern) Formatowanie napisów, dat i liczb (klasa Formatter) Formatowanie z uwzględnieniem ustawień regionalnych Kolekcje i klasy Generyczne Rodzaje kolekcji w Java Kolekcje uporządkowane, nieuporządkowane, posortowane, nieposortowane Metoda equals i hashCode Interfejsy Collection, Set, Map, List Przegląd dostępnych kolekcji Kolekcje synchronizowane Iteracja po kolekcjach Interfejsy Comparable i Comparator Metody użytkowe z klasy Collections Interfejs Clonable Kolekcje Generyczne Zasady tworzenia klas Generycznych 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 Atomizacja strumieni (StreamTokenizer) Elementy zaawansowane języka klasy wewnętrzne, statyczne, anonimowe import statyczny metoda finalize i gc annotacje Programowanie aplikacji wielowątkowych Pojęcie Wątku 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 Programowanie sieci TCP/IP Podstawy protokołów IP / TCP / UDP Programowanie z użyciem UDP (DatagramSocket, Datagram Packet) Programowanie z użyciem TCP (Socket, ServerSocket) Rodzaje i Obsługa wyjątków Zagadnienia przesyłania obiektów Zagadnienia współbieżnej obsługi wielu połączeń RMI Wprowadzenie do RMI Warstwy RMI i zasada działania Tworzenie zdalnych obiektów (interfejs Remote) Generacja Stubów (rmic) Rejestr RMI i bindowanie zdalnych obiektów (rmiregistry) Implementacja klienta Przegląd wyjątków Zagadnienia bezpieczeństwa RMI a Corba i EJB SWING Idea programowania komponentowo-zdarzeniowego Pojęcie komponentu i kontenera Przegląd komponentów i kontenerów w Swing Zarządcy rozkładu Rodzaje zdarzeń i ich obsługa (Events Listeners, Adapters) Zagadnienia współbieżności w kontekście SWING Applety i Java2D Podstawy Java2d, (klasa Graphics) Podstawy tworzenia animacji Zasada działania apletów Metody i cykl życia Osadzanie apletu na stronie internetowej Aplety i Swing Zagadnienia bezpieczeństwa Podstawy JDBC Podstawy przetwarzania XML w Java Podstawy testowania aplikacji z użyciem biblioteki Junit Koncepcja TDD Rodzaje testów Biblioteki jUnit i testNG Testowanie z użyciem obiektów Mock Zaawansowane zagadnienia związane z platformą Java Classloader Management & Logging JNI Java Reflection Wprowadzenie do Java Enterprise Edition |