1 / 29

Java 1

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: mmisiak@math.uni.lodz.pl strona www: www.michalmisiak.prv.pl. Zasady zaliczenia. Kolokwium + Projekt w ramach laboratorium

ayoka
Télécharger la présentation

Java 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java 1 Wykład wstępny mgr inż. Michał Misiak

  2. Podstawowe informacje • mgr inż.. Michał Misiak • Konsultacje pokój 317, piątek po wykładzie • e-mail: mmisiak@math.uni.lodz.pl • strona www: www.michalmisiak.prv.pl

  3. 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

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

  5. 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?

  6. 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

  7. 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;

  8. 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%

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

  10. 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

  11. 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) (1) http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html

  12. 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

  13. 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ą

  14. 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

  15. Java 2 Standard Edition

  16. 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

  17. 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

  18. 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

  19. 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 …

  20. 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.

  21. 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

  22. Różności Javy

  23. 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

  24. 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/

  25. Ś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)

  26. Eclipse

  27. Netbeans

  28. Literatura • Core Java 2 Podstawy • Java 2 Techniki Zaawansowane

  29. Pytania ?

More Related