Transcript Java 1

Uniwersytet Łódzki
Wydział Matematyki i Informatyki,
Katedra Analizy Nieliniowej
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

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
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
Źródło: J2EE training: http://courses.coreservlets.com
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żyteczna
 Restrykcje
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
(1)

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%
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007
(1) http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html
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


Standardowy mechanizm wykonywania zapytań bazodanowych


Również regularne jak i parametryzowane zapytania do DB
Standaryzowany struktury danych do przechwytywania rezultatów
zapytań


Wymaga wyłączenie specyficznych sterowników dla serwera po stronie
klienta. Nie trzeba nic zmieniać po stronie serwera
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 ?
Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007