• Nie Znaleziono Wyników

Java 1

N/A
N/A
Protected

Academic year: 2021

Share "Java 1"

Copied!
29
0
0

Pełen tekst

(1)

Uniwersytet Łódzki

Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej

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)

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

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

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?

(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

(7)

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;

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

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

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

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)

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

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ą

(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

(15)

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

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)

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

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

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

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

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

(22)

Różności Javy

(23)

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

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

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)

(26)

Eclipse

(27)

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

Netbeans

(28)

Literatura

 Core Java 2 Podstawy

 Java 2 Techniki Zaawansowane

(29)

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

Pytania ?

Cytaty

Powiązane dokumenty

Napisz program, który dla podanych jako argumenty programu nazwisk wpisze je do tablicy nazwisk, a następnie wypisze na je w kolejności od najdłuższego na ekran podając dla

Write a program that read command line arguments and write in order form longest to shortest and give its length:. Documentation

Gdy od zmiennej typu znakowego w której skład wchodzą nie tylko znaki cyfr ale i litery odejmiemy zmienną typu liczbowego wówczas otrzymanym wynikiem będzie..

class mojAdapter extends MouseAdapter { public void mouseClicked(MouseEvent e) { //implementacja obsługi zdarzenia. }

w Windows jest to System Tray odnosi się do paska, a w GNOME rozumiany jest jak obszar powiadomień.

 W pętli while <instrukcja> jest powtarzana tak długo, jak wyrażenie logiczne ma wartość równą true. while składnia : do instrukcja while ( wyrażenie

Innymi słowy, funkcja (w sensie matematycznym) definiuje wartośd, ale nie określa ciągu działao na wartościach w pamięci, które mogłyby ją wytworzyd... dr Dariusz Wardowski,

Filtrowanie listy polega na wybraniu z listy tylko tych elementów, które spełniają podane kryterium, i zwróceniu ich jako nowej (zwykle krótszej) listy.. dr Dariusz Wardowski,