29
Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej Java 1 Wykład wstępny mgr inż. Michał Misiak

Java 1

  • 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

Page 1: Java 1

Uniwersytet ŁódzkiWydział Matematyki i Informatyki, Katedra Analizy Nieliniowej

Java 1Wykład wstępny

mgr inż. Michał Misiak

Page 2: Java 1

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

Page 3: Java 1

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

Page 4: Java 1

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, …)

Page 5: Java 1

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?

Page 6: Java 1

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

Page 7: Java 1

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;

Page 8: Java 1

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%

Page 9: Java 1

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…)

Page 10: Java 1

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

Page 11: Java 1

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)

Page 12: Java 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

Page 13: Java 1

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ą

Page 14: Java 1

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

Page 15: Java 1

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007

Java 2 Standard Edition

Page 16: Java 1

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

Page 17: Java 1

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

Page 18: Java 1

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

Page 19: Java 1

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 …

Page 20: Java 1

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.

Page 21: Java 1

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

Page 22: Java 1

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007

Różności Javy

Page 23: Java 1

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

Page 24: Java 1

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/

Page 25: Java 1

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)

Page 26: Java 1

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007

Eclipse

Page 27: Java 1

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007

Netbeans

Page 28: Java 1

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007

Literatura

Core Java 2 Podstawy Java 2 Techniki Zaawansowane

Page 29: Java 1

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007

Pytania ?