Języki i paradygmaty programowania - Java

2007
  • Krzysztof Rychlicki-Kicior, J2ME – Praktyczne Projekty, 2007
2006
  • Bruce Eckel, Thinking in Java, 2006
2003
  • Robert Lafore, Java – Algorytmy i struktury danych, 2003
2002
  • Kim Topley, J2ME in a Nutshell, 2002
2001
  • Elliote Rusty Harold, Java – Programowanie Sieciowe, 2001
1998
  • Barry Bone, Java dla programistów C i C++, 1998
  1. Wprowadzenie
    • Obiekt i obiektowość
    • Interfejs
    • Dziedziczenie
    • Polimorfizm
    • Własności języka Java
    • Klasa, pola, metody
    • Słowo kluczowe static
    • Komentowanie kodu
    • Operatory w Javie
  2. Operatory, Inicjalizacja, proste I/O
    • Operator ?:,
    • Operator +dla napisów
    • Przepływ sterowania w programie
    • instrukcje sterujące, if-then-else, while, for, foreach, break, continue
    • Inicjalizacja obiektu, konstruktor, przeciążanie konstruktora i innych funkcji
    • Garbage collector
    • Tablice, metody o zmiennej ilości parametrów
    • Proste I/O
  3. Kontrola dostępu, Klasy, Polimorfizm
    • Pakiet
    • Biblioteka jar
    • Modyfikatory dostępu w Javie
      • Zasięg pakietowy
    • Wielokrotne wykorzystanie klas
    • Inicjalizacja klasy bazowej
    • Kompozycja i dziedziczenie
    • Słowo kluczowe final
    • Rzutowanie w górę (upcasting)
  4. Interfejsy, klasy abstrakcyjne, klasy wewnętrzne i zagnieżdżone
    • Polimorfizm
    • Klasy abstrakcyjne
    • Interfejsy, pola w interfejsach
      • Interfejsy zagnieżdżone
    • Klasy abstrakcyjne
    • Klasy wewnętrzne (ang. inner classes)
    • Lokalne klasy wewnętrzne
    • Anonimowe klasy wewnętrzne
    • Wzorzec Factory Method i klasy anonimowe
    • Klasy zagnieżdżone
  5. Obsługa błędów w Javie, proste RTTI
    • Obsługa błędów w Javie
      • zgłaszanie wyjątków
      • hierarchia wyjątków
      • wyjątki z parametrami
      • rejestrowanie (logowanie) wyjątków
      • specyfikacja wyjątków
      • sekwencje wyjątków, ponowne zgłaszanie wyjątków, wyjątki w konstruktorze
      • klauzula finally, zagubienie wyjątku
    • Proste RTTI
      • sprawdzanie typów, tworzenie obiektów
  6. Typy Kontenerowe w Javie, RTTI
    • RTTI (cd..)
      • ładowanie klasy
      • referencje klas uogólnionych
      • refleksja
    • Kolekcje obiektów
      • taksonomia, wypisywanie kontenerów
      • List, ArrayList, LinkedList
      • Stack, Set, HashSet, TreeSet
      • Map, HashMap, Queue, PriorityQueue
      • Iterowanie po kolekcjach
  7. Napisy i Wyrażenia Regularne w Javie
    • Napisy w Javie
      • Dodawanie napisów
        • operator +
        • StringBuilder
      • Niezamierzona rekursja
        • toString()
      • Operacje klasy String()
      • Formatowanie napisu, Formatter
      • Wyrażenia regularne
        • Klasy Pattern i Matcher
        • rodzaje wyrażeń regularnych
      • Operacje na napisach z wykorzystaniem wyrażeń regularnych
  8. Operacje wejścia/wyjścia
    • Podstawowe I/O
    • Klasa File
      • pliki i katalogi
      • interfejs klasy File
    • Strumienie
    • Wejście/Wyjście Unicode (Reades & Writers)
    • Typowe zastosowania
      • buforowanie, obsługa plików tekstowych, pliki binarne, pliki o dostępie swobodnym
    • Serializacja i Eksternalizacja
    • NIO (New I/O)
      • kanały, bufory bajtów, struktura NIO
    • Kompresja ZIP/GZIP
  9. Współbieżność cz. 1
    • Współbieżność – pojęcia
    • Interfejs Runnable – zadania (ang. tasks), pule wątków
    • Egzekutory – mechanizm uruchamiania zadań
    • Zadania z możliwością zwracania wyników przetwarzania
    • Priorytet wątku, operacje na wątku
    • Wątki demonów, łączenie wątków, zadania jako klasy wewnętrzne
    • Obsługa wyjątków w wątkach
    • Współdzielenie zasobów i synchronizacja za pomocą:
      • monitorów
      • blokad jawnych
  10. Współbieżność cz. 2
    • Klasy/operacje atomowe
    • Synchronizacja i pamięć wątku
    • Stany w jakich może znajdować się wątek
    • Przerwanie wątku – metoda interrupt()
    • Sytuacje, w których wątek nie może być przerwany metodą interrupt() i jak sobie z nimi radzić
    • Status przerwania wątku
    • Synchronizacja: wait(), notifyAll(), await(), signalAll()
    • Zakleszczenia, kolejki blokujące
    • Komunikacja między wątkami poprzez potoki
  11. Współbieżność cz. 3, Programowanie Sieciowe
    • Współbieżność
      • CountDownLatch, CyclicBarrier, DelayQueue
      • Semafor
        • semafor binarny. semafor w Javie
    • Programowanie sieciowe
      • warstwy modelu ISO/OSI
      • protokoły: TCP/UDP/IP, pojęcia: Adres IP, Porty, Gnizada
      • Klasy: InetAddress i URL
      • HTML i Swing
      • Gniazdo klienckie – nawiązywanie połączenia
      • Gniazdo serwerowe – przykład prostego serwera
  12. Podstawy biblioteki Swing
    • Java GUI, proste okienko
    • Przycisk
    • Model zdarzeń w bibliotece Swing
    • Obszary tekstowe
    • Layouty: BorderLayout, FlowLayout, GridLayout itd.
    • Zdarzenia
    • Różne rodzaje przycisków, grupy przycisków
    • Ikony, Ramki, Listy rozwijane
    • Edytowalny panel
    • Zakładki, Okienka Wiadomości
    • Menu, Okno Dialogowe Pliku
  13. Java 2 Micro Edition
    • J2ME – wprowadzenie
    • Instalacja środowiska
    • Cykl życia MIDlet'ów
    • Instalacja aplikacji na użądzeniu mobilnym
    • Interfejs użytkownika
      • TextBox, Komendy
    • Formularz i elementy formularza
    • Obsługa zdarzeń
    • Przykład w pełni funkcjonalnego programu
      • klient usługi whois na urządzenia mobilne
  14. Wykład podsumowywujący
  • user/konrad/teaching/courses/wish/jipp/about.txt