Simple Steps: szkolenia Java, UML i BPMN
"przypomina nieco Sapkowskiego‚ nieco Tolkiena‚ a najbardziej chyba Grę o tron" - szczere-recenzje.pl, "Lektura tej książki wciągnęła mnie bez reszty. Z niecierpliwością czekam na więcej" - Maria Górska, "jeżeli macie ochotę na dobre‚ mocne high fantasy - nie macie wyboru‚ musicie sięgnąć po Wojny Żywiołów" - biblioteczka..., "genialna‚ wciągająca i intrygująca" - Ewelina Kiełbasińska, "Gorąco polecam!" - Addicted to books, "fabuła brzmi po prostu świetnie!" - kasiek-mysli.blogspot.com, "Jest to pozycja obowiązkowa dla każdego fana fantastyki" - moje-ukochane-czytadelka.blogspot.com, "Miałam wrażenie‚ że z każdą kolejną stroną roztacza się przede mną zupełnie inny świat" - biblioteczkaciekawychksiazek, "Zdecydowanie polecam‚ bo jest to kawał dobrze napisanego polskiego high fantasy!" - biblioteczkaciekawychksiazek, "mogę polecić wszystkim fanom tego gatunku" - zapiski-okularnicy.pl, "wciągnie nie tylko fanów fantastyki‚ ale i każdego czytelnika" - subiektywinie.blogspot.com, "Nie spodziewałam się‚ że aż tak mnie wciągnie." - zapiski-okularnicy.pl, "Jest to powieść zdecydowanie warta uwagi." - in-corner-with-book.blogspot.com, "nie mogę się już doczekać‚ kiedy dorwę tom drugi" - biblioteczkaciekawychksiazek.blogspot.com, "Poleciłabym zdecydowanie osobom gustującym w fantastyce" - marzenieliterackie.blogspot.com, "zachwyca także złożoność i różnorodność wątków" - szczere-recenzje.pl, "Nie mogę się doczekać kiedy znów przeniosę się do tego świata" - moje-ukochane-czytadelka.blogspot.com, "Najchętniej od razu sięgnęłabym po kolejną część." - zapiski-okularnicy.pl, "nie spodziewałam się tego po fantasy" - Ewelina Kiełbasińska, "książkę gorąco wam polecam!" - kasiek-mysli.blogspot.com, "autor cały czas utrzymywał mnie w napięciu i ciekawości" - moje-ukochane-czytadelka.blogspot.com, "książkę mogę z czystym sumieniem polecić wszystkim fanom gatunku" - Globster na lubimyczytac.pl, "to książka‚ która pobudziła moją wyobraźnię i ciekawość." - zapiski-okularnicy.pl, "Nie ma tu miejsca na nudę" - in-corner-with-book.blogspot.com

Szkolenia Java, UML i BPMN: Programowanie w Java


Programowanie w Java

Programowanie w Java

Kod szkolenia: JAVA-PRO

Adresaci szkolenia

Szkolenie przeznaczone jest dla programistów, którzy chcą poznać od podstaw i nauczyć się programować w języku Java.

Cele szkolenia

Celem szkolenia jest zdobycie umiejętności programowania w języku Java. Uwzględniając tak poznanie konstrukcji językowych, standardowych bibliotek niezbędnych do wytwarzania wysokiej jakości oprogramowania (kolekcje, IO, GUI, bazy danych, i inne), jak i narzędzia umożliwiającego szybkie wytwarzanie, testowanie i debugowanie aplikacji (Eclipse).
Ze względu na obiektowy charakter języka Java, duży nacisk kładziony jest również na zrozumienie i nabycie umiejętności wykorzystywania cech obiektowości. Specjalnie dobrane zadania rozwijają w uczestnikach umiejętność wytwarzania kodu Java o wysokiej elastyczności, dzięki zastosowaniu podstawowych cech obiektowości, czy wzorców projektowych.

Czas trwania szkolenia

5 dni, po 8 godzin. Łącznie 40 godzin(y) szkolenia.
Uwaga: Szkolenie posiada również wersję 4 dniową, bez Peryferii i integracji (aplikacje konsolowe, tworzenie GUI, komunikacja TCP, bazy danych)

Oczekiwane przygotowanie słuchaczy przed szkoleniem

Od uczestników wymagana jest umiejętność programowania w jakimkolwiek innym języku programowania.

Polecane szkolenia uzupełniające

Szkolenie dotyczy nauki programowania w Java od podstaw, a zatem nie wymaga żadnych szkoleń poprzedzających.
W naszej ofercie znajdują się również szkolenia uzupełniające w zakresie JEE: JAVA-WYD, JAVA-EJB, JAVA-JSF, JAVA-WS, JAVA-JPA, JAVA-JEE.
A także szkolenia na wyższych poziomach: projektowanie (JAVA-WZO) i architektura (JAVA-ARCH)

Program szkolenia

  1. Wprowadzenie do Java
    • Maszyna wirtualna Java
      1. Czym jest wirtualna maszyna
        1. Pośrednia warstwa wykonania
        2. Jeden język programowania
        3. Wiele maszyn wirtualnych
        4. Jeden mechanizm wykonania kodu
          1. Pliki class
          2. Class Loader
          3. Bytecode Verifier
          4. Translator
          5. Optymalizacje (JIT, HotSpot)
      2. Założenia projektowe Javy
        1. Prostota
        2. Przenaszalność
        3. Bezpieczeństwo i niezawodność
        4. Automatyczne odśmiecanie (Garbage Collector)
      3. Różne dystrybucje Javy
        1. Java ME (Java Micro Edition)
        2. Java SE (Java Standard Edition)
        3. Java EE (Java Enterprise Edition)
    • Podstawy tworzenia aplikacji Java
      1. Konwencje nazewnictwa klas
      2. Pakiety i przestrzenie nazw
      3. Metoda uruchamiająca program (main)
      4. Kompilacja kodu Java
      5. Uruchomienie aplikacji Java
      6. Uruchomienie pojedyńczego pliku Java (od Java 11)
      7. jshell (od Java 9)
      8. Dokumentowanie kodu (JavaDoc)
  2. Klasy i typy danych
    • Typy proste
      1. boolean
      2. char
      3. Liczby całkowite
        1. byte
        2. short
        3. int
        4. long
      4. Liczby zmiennoprzecinkowe
        1. float
        2. double
      5. Konwersja typów
        1. Rzutowanie
        2. Automatyczna konwersja typów
    • Typ wyliczeniowy (enum)
    • Tablice
      1. Tworzenie tablic
      2. Operacje na danych w tablicach
      3. Inicjalizacja tablic
      4. Tablice wielowymiarowe
      5. Przeglądanie tablic
    • Typy obiektowe
      1. Przykłady (String, Date)
      2. Tabele jako typy obiektowe
      3. Wywołanie metody
      4. Odwołanie do atrybutu klasy
        1. Bezpośrednie
        2. Notacja JavaBean (get, set)
      5. Klasy opakowujące typy proste (wrappery)
        1. Autoboxing
        2. Unboxing
    • Tworzenie klas w Java
      1. Metody klasy
        1. Deklaracja metod
        2. Wynik metody
        3. Wynik pusty (void)
        4. Atrybuty metod
        5. Zmienna ilość atrybutów (varargs)
        6. Przeciążanie metod (overload)
      2. Atrybuty klasy
      3. Zmienne lokalne
      4. Local variable type inference "var" (od java 10)
      5. Zasięg widoczności zmiennych
      6. Konstruktory
        1. Tworzenie konstruktorów
        2. Konstruktor domyślny
      7. Stałe (final)
      8. Elementy statyczne
        1. Atrybuty statyczne
        2. Metody statyczne
      9. Współpraca klas
        1. Klasy publiczne
        2. Klasy pakietowe
        3. Importowanie klas
        4. Import statyczny
    • Rekordy
  3. Składnia języka Java
    • Nazewnictwo (identyfikatory)
      1. Klas
      2. Atrybutów
      3. Metod
    • Operatory
      1. Operatory arytmetyczne
      2. Operatory logiczne
      3. Operator tetralny
      4. Operatory binarne
      5. Kolejność wykonywania operacji
    • Konstrukcje sterowania
      1. Operacje warunkowe
        1. if
        2. if else
        3. switch
        4. switch z wynikiem (od JAva 12)
      2. Pętle
        1. while
        2. do while
        3. for
        4. "foreach"
        5. Instrukcje sterowania pętą
          1. break
          2. continue
          3. Etykiety (labels)
      3. Asercje (assert)
        1. Weryfikacja poprawności wykonania
        2. Włączanie/wyłączanie asercji
        3. Reguły używania asercji
  4. Java a obiektowość
    • Klasa (class)
    • Obiekt
    • Abstrakcja
    • Wysoka zwartość klas (high cohesion)
    • Dziedziczenie
      1. Dziedziczenie między klasami
      2. Rozszerzanie klas (o metody i atrybuty)
      3. Operator instanfeof
      4. Klasa Object
      5. Nadpisywanie metod (override)
        1. Reguły nadpisywania
        2. Dostęp do metody pierwotnej (super)
      6. Konstruktor a dziedziczenie
        1. super()
        2. this()
      7. Poziomy dostępu
        1. public
        2. protected
        3. domyślny (package)
        4. private
      8. Ograniczenia w dziedziczeniu
        1. Jednokrotne dziedziczenie
        2. Klasy final
        3. Metody final
    • Dziedziczyć czy delegować
      1. Relacja "is"
      2. Relacja "has"
    • Hermetyzacja
    • Polimorfizm
      1. Wkorzystanie polimorfizmu
      2. Rzutowanie typów
    • Klasy abstrakcyjne (abstract)
    • Interfejsy (interface)
    • Luźne powiązanie (loose coupling)
  5. Błędy i wyjątki w Javie
    • Sygnalizacja błędów w Javie
      1. Throwable
      2. Error
      3. Exception
      4. RuntimeException
      5. Ścieżka błędu (stack trace)
    • Obsługa wyjątków
      1. Przepuszczenie wyjątku (throws)
      2. Wykonanie niebezpiecznej operacji (try)
      3. Łapanie wyjątków (catch)
      4. Wykonanie operacji gwarantowanych (finally)
      5. try-with-resources i autoclosable
      6. try-with-resources z final i effectively final (od Java 9)
    • Tworzenie własnych wyjątków
      1. Własna klasa wyjątku
      2. Wyrzucenie nowego wyjątku (throw new)
      3. Wyrzucenie złapanego wyjątku (throw w catch)
    • Dobre rady do obsługi błędów
  6. Kolekcje w Java
    • Użycie klas generycznych
    • Podstawy kolekcji
      1. Iterable
      2. Collection
      3. Comparator
      4. Comparable
    • Zbiory (Set)
      1. HashSet
      2. TreeSet
    • Mapy (Map)
      1. HashMap
      2. TreeMap
    • Listy (List)
      1. ArrayList
      2. LinkedList
    • Kolejki (Queue)
    • Kolejki dwustronne (Deque)
    • Łatwa inicjalizacja kolekcji (od Java 9)
    • Klasa pomocnicza Collections
    • Wstęp do kolekcji wielowątkowych
  7. Środowisko systemowe
    • Program Java a system
      1. Atrybuty wykonania programu
      2. Zmienne systemowe
      3. Biblioteki Java (jar)
      4. Biblioteki samo-wykonywalne
    • Klasy systemowe
      1. String
      2. StringBuffer i StringBuilder - wydajna praca z napisami
      3. Arrays - operacje na tablicach
      4. System
      5. Date i Calendar
      6. Instant, LocalDate/Time, Clock
      7. ChronoUnit, Period, Duration, TemporalAdjuster
      8. Locale - lokalizacja w Java (l10n)
      9. Formatowanie dat i liczb
        1. SimpleDateFormat
        2. DecimalFormat
      10. Internacjonalizacja w Java (i18n)
        1. ResourceBoundle
        2. Format
          1. MessageFormat
          2. ChoiceFormat
  8. Operacje IO
    • Operacje na systemie plików (Path, Files)
    • Operacje na zawartości plików (strumienie)
      1. Strumienie binarne
        1. InputStream
        2. OutpurStream
      2. Strumienie tekstowe
        1. Reader
        2. Writer
      3. Konwersja strumieni
        1. InputStreamReader
        2. OutputStreamWriter
      4. Praca na plikach
        1. FileInputStream
        2. FileOutputStream
        3. FileReader
        4. FileWriter
        5. Swobodny dostęp (RandomAccessFile)
      5. Strumienie wysokopoziomowe
        1. Łańcuchy strumieni
        2. Strumienie buforowane
    • Serializacja danych
      1. Serializable
      2. DataInputStream
      3. DataOutputStream
    • Wstęp do NIO (kanały)
      1. Channel
      2. Buffer
    • Przegląd NIO2
  9. Przegląd pozostałych elementów języka Java
    • Wstęp do modułów
    • Konstruktor klasy (blok static)
    • Szczegóły enumeracji
      1. Metody w enumeracjach
      2. Konstruktory w enumeracjach
      3. Atrybuty w enumeracjach
    • Adnotacje
      1. @Deprecated
      2. @Override
      3. @SupressWarnings
      4. Adnotacje przy użyciu typów
      5. Powtarzalne adnotacje
    • Podstawy JUnit - testowanie aplikacji
      1. @Test(timeout, expected)
      2. @Before
      3. @After
      4. @BeforeClass
      5. @AfterClass
      6. Metody weryfikujące - assert
    • Klasy wewnętrzne
      1. Powiązanie z obiektem klasy zewnętrznej
      2. Statyczne klasy wewnętrzne
    • Klasy anonimowe
      1. Tworzenie klas anonimowych
      2. Ograniczenia klas anonimowych
      3. Stałe metod (argumenty final), a klasy anonimowe
      4. Klasy anonimowe z diamentem (od Java 9)
    • Wyrażenia Lambda
      1. Składnia
      2. var w Lambda (od Java 11)
      3. Referencje metod i konstruktorów
      4. Interfejs funkcyjny i metody domyslne
      5. Metody prywatne w interfejsach (od Java 9)
      6. Strumienie a Lambda
        1. Strumieniowanie plików
        2. Strumieniowanie kolekcji
        3. forEach, map, filter, peek, limit, sorted
        4. Zbieranie wyników - Collectors
          1. toList, toCollection, joining
          2. Statystyki
          3. Grupowanie i partycjonowanie
    • Optional
    • Programowanie funkcyjne - interfejs Function
  10. Programowanie wielowątkowe
    • API wątków w Javie
      1. Runnable
      2. Thread
      3. ThreadGroup
    • Tworzenie własnych wątków
      1. Startowanie wątków
      2. Kończenie pracy wątków
    • Synchronizacja (synchronized)
      1. Czym jest monitor
      2. Metody synchronizowane
      3. Statyczne metody synchronizowane
      4. Blok synchronizujący
    • Współpraca między wątkami
      1. sleep
      2. join
      3. yield
      4. wait
      5. notify/notifyAll
    • Problemy wielowątkowości
      1. Zakleszczenie (deadlock)
      2. Zagłodzenie (starvation)
    • Zmienne ulotne (volatile)
    • Wstęp do java.util.concurrent
  11. Najczęściej popełniane błędy
    • Na co uważać w Javie
      1. Używanie asercji
      2. Wydajność operacji IO
      3. Literówki w nadpisywaniu metod
      4. Operacje na kolekcjach haszujących
        1. Kontrakt między equals a hashCode
        2. Obiekty niemutowalne
        3. Wycieki pamięci
      5. Porównywanie operatorem ==
      6. Brak konstruktora domyślnego
    • Czego unikać w Javie
      1. Zła współpraca z Garbage Collector
        1. Garbage Collector - działanie
        2. Pule małych obiektów
        3. System.gc()
        4. Finalizacja (finalize)
      2. Przestarzałe metody Thread
      3. Wołanie metod nieprywatnych w konstruktorze
  12. Zaawansowane operacje na napisach (opcjonalne)
    • Formatowanie napisów
      1. Składnia formatowania
      2. Formatter
      3. String.format()
      4. PrintStream.printf() i PrintWriter.printf()
    • regex – regular expression
      1. Wprowadzenie do regex
      2. Pattern
      3. Matcher
    • Tokenizacja
      1. Pattern.split() i String.split()
      2. StringTokenizer
      3. StreamTokenizer
      4. Scanner
  13. Peryferia i integracja
    • Aplikacje konsolowe
      1. Pobieranie całych linii
      2. Zaawansowana komunikacja z konsolą (Scanner)
      3. Pułapki
    • Tworzenie GUI w Java (Swing)
      1. AWT a Swing
      2. Podstawowe kontenery graficzne
        1. JFrame
        2. JDialog
          1. JFileChooser
          2. JColorChooser
          3. JOptionPane (typy wiadomości i przycisków)
          4. Własne okna dialogowe
        3. JPanel
      3. Layout'y
        1. Rozstawienie własne
        2. FlowLayout
        3. GridLayout
        4. BorderLayout
        5. Przegląd pozostałych layout'ów
          1. CardLayout
          2. OverlayLayout
          3. GroupLayout
          4. GridBagLayout
          5. BoxLayout
          6. SpringLayout
      4. Podstawowe komponenty graficzne
        1. JLabel
        2. JButton
        3. JTextField
        4. JTextArea
        5. JComboBox
        6. JCheckBox
        7. JRadioButton
      5. Model nasłuchu zdarzeń
        1. Przegląd wybranych listener'ów
          1. ActionListener
          2. ItemListener
          3. FocusListener
          4. KeyListener
          5. TextListener
          6. MouseListener
          7. MouseMotionListener
          8. ComponentListener
          9. ContainerListener
          10. WindowListener
        2. Adaptery
    • Komunikacja przez TCP
      1. Gniazdka (Socket)
        1. SocketServer
        2. Socket
      2. Serwer wielowątkowy
      3. Wstęp do RMI
    • JDBC - komunikacja z bazami danych
      1. Nawiązanie połączenia z bazą danych
        1. DriverManager
        2. Connection
      2. Wysyłanie zapytania do bazy danych
        1. Statement
        2. PreparedStatement
        3. CallableStatement
      3. Przegląd wyników (ResultSet)
    • Więcej o Swing (opcjonalne)
      1. Belka menu
        1. JMenuBar
        2. JMenu
        3. JMenuItem
        4. JSeparator
        5. JCheckBoxMenuItem
        6. JRadioButtonMenuItem
        7. Nasłuch w opcjach menu
        8. Menu - co jeszcze (krótki opis)
          1. JPopupMenu
          2. Szybki dostęp - mnemonic
          3. Szybki dostęp - akceleratory
      2. Dokładniej BoxLayout
      3. Dokładniej CardLayout
      4. Przegląd kontenerów
        1. JPanel
        2. JScrollPane
        3. JSplitPane
        4. JTabbedPane
      5. JTable - przykład komponentu zaawansowanego
      6. Inne komponenty zaawansowane
      7. Look & Feel
      8. Swing a wielowątkowość
        1. SwingUtilities.invokeLater(Runnable)
        2. SwingUtilities.invokeAndWait(Runnable)
        3. SwingWorker

simple-steps.pl, simplesteps.pl są własnością SIMPLE Podbielski Michał