Web Content Display Web Content Display

Office hours for students
thursday 12-14
room D-2-47

tel. (+48 12) 664 46 81

michal.ciesla@uj.edu.pl

Web Content Display Web Content Display

JĘZYK JAVA

Wykład przedstawia wybrane elementy języka Java. Początkowe wykłady opisują podstawowe konstrukcje i struktury danych występujące w Javie. Następnie omówione zastają wybrane pakiety mające istotne znaczenie w typowej pracy programisty (tworzenie graficznych interfejsów użytkownika, komunikacja sieciowa, przetwarzanie XML’a). Ostatnie wykłady poświęcono nieco bardziej zaawansowanym mechanizmom, udostępnianym dla programistów Javy.

 

Ramowy plan wykładu

 

  1. Wprowadzenie.
    Przykłady pierwszych, prostych programów oraz podstawowe cechy języka.
     
  2. Klasy, interfejsy itp.
    Kontynuacja. Podstawowe cechy klas, klas abstrakcyjnych i interfejsów. Zmienne statyczne.
     
  3. Wyjątki, kolekcje.
    Obsługa wyjątków, błędy, kolekcje jako użyteczne struktury danych - przykłady (Vector, Hashtable, Properties).
     
  4. Typy generyczne (szablony).
    Typy generyczne w języku java - wprowadzenie, dziedziczenie typów, zasada działania i ograniczenia.
     
  5. Obsługa I/O, strumienie.
    Strumienie bajtowe, znakowe i binarne. Skanowanie i formatowanie. Serializacja.
     
  6. Współbieżność.
    Procesy i wątki - tworzenie i podstawowe operacje, synchronizacja, typowe problemy, blokady, egzekutory.
     
  7. Swing.
    Wprowadzenie do Swing - pakietu służącego do tworzenia graficznych interfejsów użytkownika. Komponenty tekstowe.
     
  8. Java i sieci.
    Klasy URL i URLConnection, interfejs gniazd, przykłady komunikacji z wykorzystaniem TCP oraz SSL.
     
  9. Java i XML.
    Przetwarzanie dokumentów XML w Javie. DOM, SAX, JAXB. Narzędzie Ant.
     
  10. Java i bazy danych.
    Obsługa relacyjnych baz danych z poziomu Javy. Baza HSQLD.
     
  11. Programowanie refleksyjne.
    Pakiet java.lang.reflect. Dynamiczne klasy proxy.
     
  12. Programowanie dynamiczne.
    Analiza bytecodu, biblioteka ASM służąca do modyfikacji klas (bytecodu) z poziomu działającego programu w Javie.
     
  13. Programowanie funkcyjne.
    Funkcje, wyrażenia lambda, strumienie


    Inne wykłady (obecnie poza kursem)
  • Operacje na plikach i katalogach
    Wybrane klasy pakietu java.nio.file, Strumienie przeznaczone do kompresji i archiwizacji, narzędzie JAR.
     
  • Swing c.d.
    Kontynuacja. JFileChooser, JOptionPane, obsługa dran’n drop.
  • Java Native Interface.
    Korzystanie z bibliotek natywnych (C/C++) z poziomu programu w Javie, dostęp do obiektów Javy z poziomu kodu natywnego (C/C++).
  •  
  • Elementy JEE.
    Apache Tomcat, servlety, JSP, JavaBeans.