Upload
ayoka
View
33
Download
0
Embed Size (px)
DESCRIPTION
Java 1. Wykład wstępny. mgr inż. Michał Misiak. Podstawowe informacje. mgr inż.. Michał Misiak Konsultacje pokój 317, piątek po wykładzie e-mail: [email protected] strona www: www.michalmisiak.prv.pl. Zasady zaliczenia. Kolokwium + Projekt w ramach laboratorium - PowerPoint PPT Presentation
Citation preview
Uniwersytet ŁódzkiWydział Matematyki i Informatyki, Katedra Analizy Nieliniowej
Java 1Wykład wstępny
mgr inż. Michał Misiak
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Podstawowe informacje
mgr inż.. Michał Misiak Konsultacje pokój 317, piątek po
wykładzie e-mail: [email protected] strona www: www.michalmisiak.prv.pl
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Zasady zaliczenia
Kolokwium + Projekt w ramach laboratorium
Ocena z wykładu: 0,4 * ocena z kolokwium + 0,6 * ocena z projektu
Kolokwium na przedostatnich zajęciach
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Program wykładów
Podstawy języka Przegląd klas i pakietów Obsługa zdarzeń Rysowanie AWT Swing Aplety Programowanie współbieżne Programowanie sieciowe Różności (JDBC, JMF, J2ME, …)
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Prawdy i mity o Javie
Java jest techniką webową? Java jest bezpieczna? Java jest niezależna od architektury? Java jest wydajna? Java jest prosta? Java jest potężna? Java jest obiektowa? Java jest rozproszona? Java jest interpretowana?
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Java prowadzi przemysł programistyczny Najbardziej popularne i pożądane języki programowania
na lipiec 2007, zobacz: http://www.tiobe.com/tpci.htm Java C C++ Visual Basic PHP Perl C# Python JavaScript Ruby
Źródło: J2EE training: http://courses.coreservlets.com
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Java jest techniką webową
Prawda! Przeglądarki WWW mogą uruchamiać programy w Java tzw. “applety” Sieć WWW może być wykorzystana do dostarczenia i
wykonywania aplikacji; Nie trzeba instalować i ściągać uaktualnień aplikacji. Aplikacja
znajduje się pod konkretnym adresem, jest zasobem sieciowym; Prawda! Biblioteki sieciowe Java są łatwe w użyciu
Przeciętny użytkownik może w łatwy sposób pisać aplikacje sieciowe w oparciu o gniazda;
Standardowe protokoły dla systemów rozproszonych i API dla DBMS;
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Java jest techniką webową
Mit! Java jest rozwiązaniem tylko dla WWW Aplety Java działają w ramach stron WWW Aplikacje Javy mogą być również stacjonarne tzw.
„stand-alone” Java również jako aplikacja mobilna Aktualne wykorzystanie:
Klient (applet): 5% Aplikacja stand-alone (application): 25% Serwer (servlets/JSP/EJB): 70%
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Java jest bezpieczna
Prawda! Restrykcje na wykonywanie operacji brak możliwości wykonywania operacji bezpośrednio
na pamięci Aplety standardowo zabraniają:
czytanie z dysku lokalnego; zapisywanie na dysk lokalny; wykonywania lokalnie programów otwierania połączeń sieciowych innych niż HTTP dostęp do prywatnych danych o użytkowniku (nazwa,
katalogi, zainstalowane aplikacje, etc…)
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Java jest bezpieczna
Mit! Java jest zbyt bardzo restrykcyjna, ażeby była użytecznaRestrykcje stosują się wyłączenie do apletów,
nie do regularnych programów Java;Podpisy cyfrowe wspierają ograniczanie
restrykcji
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Java jest niezależna od platformy
Prawda! Programy w języku Java mogą być kompilowane na „bytecode” niezależnie od maszyny/systemu operacyjnego
Prawda! Większość systemów operacyjnych posiada implementacje Wirtualnej Maszyny Java (JVM) Windows, Linux, Solaris, MaxOS, …
Mit! Bezpieczeństwo i przenośność może być osiągnięta bez straty wydajności Obecnie programy napisane w języku Java są ok.. 20% wolniejsze niż w C++ Kolejne wersje JVM dążą do zwiększenia lub wyeliminowania start wydajności Najprawdopodobniej różnice w wydajności pomiędzy aplikacjami w C++, a w
Java pozostanie na poziomie ok. 10%
(1) http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html
(1)
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Java jest niezależna od platformy
Mit! Java jest wyłącznie interpretowana Wcześniejsze wersje były interpretowane, aktualnie wiele JVM wspiera
JIT mechanizm „Just-In-Time” Przykład kompilatora Javy bezpośrednio do języka maszynowego: The
GNU Compiler for the Java Programming Language Mit! Napisz raz uruchom gdziekolwiek (Write Once Run Anywhere)
Kod przenoszalny może być bardzo łatwo uzyskany natomiast musi być przetestowany na platformach, na których ma być używany
Aplikacje w języku Java mogą wykonywać lokalny kod Graficzne biblioteki zachowują się trochę inaczej na różnych
platformach Obsługa wykonywania wątków jest bardzo luźno zdefiniowana
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Java jest prosta
Prawda! Java wspaniale upraszcza niektóre funkcjonalności języków programowania Java dysponuje automatycznym zarządzaniem
pamięcią (Garbage Collector). Brak wskaźników oznacza brak niebezpieczeństwa
wycieków pamięci. Nie ma bezpośrednich operacji na wskaźnikach
Nie wykorzystuje się plików „makefile” Nie potrzeba plików nagłówkowych Wbudowane zarządzanie wielowątkowością
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Java jest potężna
Prawda! Java posiada duży zbiór standardowych bibliotek: obsługa sieci: URL (Uniform Resource Locator), gniazdka TCP i UDP,
adres IP, RMI, … Komponenty programistyczne: beans wielowątkowość (lekkie procesy) rozproszone obiekty: CORBA, JNDI, … obsługa baz danych: JDBC Grafika: sterowanie GUI i rysowanie grafiki Biblioteki z gotowymi strukturami danych Bezpieczeństwo: Podpisy cyfrowe, kontrola i sterowanie dostępem do
zasobów, certyfikaty Serializacja (przesyłanie struktur danych) Kompresja strumieni i plików Parsowanie XML
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Java 2 Standard Edition
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Pakiety Javy
Główne pakiety: JDBC RMI JavaBeans Swing Java 2D
Standardowe rozszerzenia Serwlety i JavaServer Pages Enterprise Java Beans (i JNDI) Java 3D Java JMF
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Java Data Base Connectivity (JDBC) Standardowy mechanizm do podłączania się do serwerów
bazodanowych Wymaga wyłączenie specyficznych sterowników dla serwera po stronie
klienta. Nie trzeba nic zmieniać po stronie serwera Standardowy mechanizm wykonywania zapytań bazodanowych
Również regularne jak i parametryzowane zapytania do DB Standaryzowany struktury danych do przechwytywania rezultatów
zapytań założeniem są relacyjne bazy danych, struktury danych jako tabele
Nie definiuje składni SQL Zapytania SQL są ciągiem znaków Wspieranie rozszerzeń serwera bazodanowego
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Remote Method Invocation
Wbudowany protokół obiektów rozproszonych RMI pozwala programistom na dostęp do obiektów Javy i sterowanie nimi w
normalny sposób. Funkcje mogą być wywoływane na zdalnym obiekcie przez sieć
Struktury danych mogą być przesyłane przez sieć dzięki mechanizmowi serializacji
Podobny do mechanizmu CORBA, ale komunikacja wyłącznie Java-Java
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
JavaBeans „Fasolki”
Pozwala organizować kod programu jako komponenty, które mogą być wielokrotnie wykorzystywane
Graficzne IDE umożliwiają modyfikację i manipulowanie „fasolkami” bez konieczności wnikania w ich strukturę. Konstrukcja programu techniką „drag-and-drop”
Bezpieczniejsze i bardziej przenośne niż komponenty ActiveX
Możliwość umieszczenia stworzonych wcześniej fasolek w narzędziach tj. JBuilder, Sun JavaWorkshop, NetBeans, IBM VisualAage, etc …
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Swing
Podstawowa bibliotek do budowy GUI w Java 2 duży zbiór wbudowanych kontrolek duża elastyczność i konfigurowalność zawiera przydatne kontrolki w tworzeniu aplikacji
komercyjnych: tzw. tooltips, tabbed panes, dokowalne menu, wielodokumentowe interfejsy, wspieranie HTML, etc…
Modyfikowalność wyglądu za pomocą tzw. look and feel. Można zmieniać w trakcie działania aplikacji.
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Java 2D
Standardowa biblioteka do rysowania w Java 2 Standardowa architektura do łatwego rysowania
obiektów 2D (struktury danych: kształty, płótno, pędzle, kolor, etc…)
Wiele przydatnych funkcjonalności : Wypełnianie wzorcami i obrazami Stosowanie różnych czcionek Wybór różnych grubości i wzorów piór Miksowanie kolorów, zmiana przeźroczystości
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Różności Javy
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Konfiguracja oprogramowania wymaganego i pomocnego przy tworzeniu aplikacji w Javie
Należy zainstalować Java (aktualnie dostępna Java w wersji 6!) Najlepiej jednak użyć wersji JDK (Java Development Kit) 5: http://java.sun.com/j2se/1.5.0/download.jsp Pobrać J2SE (Stanard Edition), nie J2EE! (Enterprise
Edition) Pobrać JDK, nie tylko JRE
Ustawić zmienną środowiskową classpath
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Dokumentacja
Sukcesem w programowaniu w Javie jest umiejętność posługiwania się dokumentacją:http://java.sun.com/j2se/1.4.2/docs/api/
Istnieje również szereg dobrych tutoriali:The Java Tutorials:
http://java.sun.com/docs/books/tutorial/http://www.apl.jhu.edu/~hall/java/
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Środowisko programowania
Eclipse (http://www.eclipse.org) Eclipse IDE for Java Developers Eclipse IDE for Java EE Developers
Netbeans (http://www.netbeans.org) NetBeans Mobility 5.5.1 ML NetBeans CDC NetBeans Visual Web Pack 5.5.1 NetBeans Profiler
JBuilder (http://www.borland.com) JCreator (www.jcreator.com)
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Eclipse
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Netbeans
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Literatura
Core Java 2 Podstawy Java 2 Techniki Zaawansowane
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Pytania ?