Preview only show first 10 pages with watermark. For full document please download

Java 1 - Wydział Matematyki I Informatyki Uł

   EMBED


Share

Transcript

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