Transcript Instalacja_i_narzędzia.Beta-kod_i_maszyna_wirtualna
Slide 1
Instalacja i narzędzia. Beta-kod i
maszyna wirtualna
mgr inż. Sylwia Glińska
Slide 2
Java to obiektowy język programowania stworzony przez grupę roboczą
pod kierunkiem Jamesa Goslinga z firmy Sun Microsystems.
W przeciwieństwie do proceduralno-obiektowego języka C++, Java jest
silnie ukierunkowana na obiektowość. Wszelkie dane i akcje na nich
podejmowane są pogrupowane w klasy.
Obecnym właścicielem tej technologii jest Oracle Corporation.
Slide 3
Czy jest Java
Java jest językiem zorientowanym obiektowo, który
w dużej mierze opiera się na C i C++.
Stanowi spójne logicznie środowisko programistyczne, posiadające
najlepsze cechy swoich wzorców.
W porównaniu z C i C++ Java jest zoptymalizowana. Usunięto
mechanizmy będące przyczyną częstych błędów programistycznych, takie
jak:
wskaźniki,
wielokrotne dziedziczenie,
przeciążanie operatorów.
Początkowo Java służyła wyłącznie do tworzenia interaktywnego
oprogramowania witryn internetowych. Z czasem obszar zastosowań
Javy był systematycznie rozszerzany.
Slide 4
JRE a JDK
Pakiety z hierarchii java i javax (dodatki wprowadzone w późniejszych
wersjach) należą do podstawowego zestawu klas rozprowadzanych jako
Java. Zestaw ten jest dostępny w dwóch wersjach: JRE (Java Runtime
Environment) – udostępnia kod bajtowy wszystkich klas standardowych i
wirtualną maszynę do ich uruchamiania, zaś JDK (Java Development Kit)
dodatkowo udostępnia źródła tych klas oraz dodatkowe narzędzia takie
jak kompilator, paker czy debuger. Podział ten wprowadzono dlatego, że
użytkownik Javy do uruchamiania programów potrzebuje tylko JRE,
natomiast do programowania działających aplikacji potrzeba już JDK.
Slide 5
Główne koncepcje
- Obiektowość
- Dziedziczenie
W Javie wszystkie obiekty są pochodną obiektu nadrzędnego (jego klasa
nazywa się po prostu Object), z którego dziedziczą podstawowe zachowania
i właściwości. Dzięki temu wszystkie mają wspólny podzbiór podstawowych
możliwości, takich jak ich: identyfikacja, porównywanie, kopiowanie,
niszczenie czy wsparcie dla programowania współbieżnego.
- Niezależność od architektury
Tę właściwość Java ma dzięki temu, że kod źródłowy programów pisanych w
Javie kompiluje się do kodu pośredniego. Powstały kod jest niezależny
od systemu operacyjnego i procesora, a wykonuje go tzw. wirtualna maszyna
Javy, która (między innymi) tłumaczy kod uniwersalny na kod dostosowany
do specyfiki konkretnego systemu operacyjnego i procesora. W tej
chwili wirtualna maszyna Javy jest już dostępna dla większości systemów
operacyjnych i procesorów.
Jednak z uwagi na to, że kod pośredni jest interpretowany, taki program jest
wolniejszy niż kompilowany do kodu maszynowego. Z tego względu
maszynę wirtualną często uzupełnia się o kompilator JIT ((ang. just-in-time
compilation)
to
metoda
wykonywania
programów
polegająca
na kompilacji do kodu maszynowego przed wykonaniem danego fragmentu
kodu).
Slide 6
- Sieciowość i obsługa programowania rozproszonego
Dzięki wykorzystaniu reguł obiektowości, Java nie widzi różnicy między danymi
płynącymi z pliku lokalnego a danymi z pliku dostępnego przez HTTP czy FTP.
Biblioteki
Javy
udostępniają
możliwość
pisania
aplikacji
uruchamianych
w przeglądarkach internetowych(aplety Javy) oraz aplikacji działających ciągle po
stronie serwera (serwlety).
-Niezawodność i bezpieczeństwo
Język robi dużo, by utrudnić programiście popełnienie błędu. Przede wszystkim Java
ma system wyjątków czyli sytuacji, gdy kod programu natrafia na nieprzewidywane
trudności, takie jak np.:
•operacje na elemencie poza zadeklarowaną granicą tablicy lub elemencie
pustym
•czytanie z niedostępnego pliku lub nieprawidłowego adresu URL
•podanie nieprawidłowych danych przez użytkownika
W języku Java obsługa wyjątków jest obowiązkowa, (a nie dobrą wolą programisty)
bez tego program się nie skompiluje
Slide 7
Beta kod – kod generowany przez kompilator Javy. Kod ten jest zawarty w
plikach z rozszerzeniem .class. Kod ten nie jest bezpośrednio zrozumiały
przez żaden procesor. Dlatego potrzebny jest dodatkowy program, który go
zinterpretuje. Programem tym jest wirtualna maszyna Javy (JVM), która
stała się interfejsem między uniwersalnym kodem Javy a różnymi
platformami sprzętowo – platformowymi.
Slide 8
Java SE (Java Platform, Standard Edition znane wcześniej jako J2SE) –
specyfikacja opracowana przez firmę Sun Microsystems opisująca podstawową
wersję platformy Java. Pozwala tworzyć i uruchamiać aplikacje napisane w języku
Java na komputerach stacjonarnych i serwerach. Java SE zawiera klasy pozwalające
tworzyć aplikacje WWW. Stanowi podstawę dla Java EE (Java Platform, Enterprise
Edition).
Java Platform, Enterprise Edition (zwana również jako Java Enterprise, J2EE
oraz Java EE czasami tłumaczona jako Java Korporacyjna) jest szeroko
rozpowszechnioną serwerową platformą programistyczną języka Java. Definiuje
standard tworzenia aplikacji w języku programowania Java opartych o
wielowarstwową architekturę komponentową. Komponenty są zwykle osadzane
na serwerze aplikacyjnym obsługującym Java Enterprise. Standard ten określa
zestaw interfejsów programistycznych jakich musi dostarczać zgodny serwer
aplikacyjny.
Slide 9
Java Platform, Micro Edition lub Java ME (znana wcześniej jako Java 2 Platform,
Micro
Edition
lub
J2ME)
–
specyfikacja
opracowana
przez
firmę
Sun
Microsystems opisująca uproszczoną wersję platformy Java. Platforma Java ME
została zaprojektowana z myślą o tworzeniu aplikacji mobilnych dla urządzeń o
bardzo ograniczonych zasobach, takich jaktelefony komórkowe lub palmtopy. Ze
względu na ograniczenia techniczne takich urządzeń, tj. wolniejsze procesory,
mniejszą pamięć, Java ME posiada swój własny, okrojony w stosunku do Java
SE zbiór klas zwanych konfiguracją (ang. configuration).
Slide 10
JavaFX
W 2007 roku firma Sun ogłosiła swe plany wprowadzenia nowego języka
skryptowego o nazwie JavaFX Script. Cele przyświecające temu językowi są podobne
do tych, które zawsze towarzyszyły Javie:
prostota tworzenia aplikacji
niezależność od architektury
platformą uruchomieniową mają być komputery PC oraz urządzenia przenośne
(np. telefony komórkowe)
Język JavaFX Script nie jest zupełnie nowym produktem, lecz rozszerzeniem
wcześniejszej Javy. Nowe aplikacje będą funkcjonować bez żadnych modyfikacji na
każdej maszynie wirtualnej Javy.
Tym posunięciem firma Sun stara się dorównać konkurencji, która promuje takie
rozwiązania jak:
technologia Flex (Adobe)
Silverlight (Microsoft)
Slide 11
Zawartość pakietu SDK (JDK)
Po zainstalowaniu pakietu Java 7 SDK, SE
w katalogu jdk1.7.0 zostanie umieszczony
podkatalog bin zawierający szereg programów
usługowych. Najważniejsze to:
javac – kompilator,
java - interpreter,
appletviewer – przeglądarka apletów,
javadoc - generator dokumentacji,
jdb – debuger,
jar – narzędzie do tworzenia archiwów.
Slide 12
Edytory
Zintegrowane środowiska programistyczne Javy
Borland JBuilder – http://www.borland.com/products/download/
Eclipse – http://www.eclipse.org/
IBM VisualAge for Java – http://www7.software.ibm.com/vad.nsf
JCreator – http://www.jcreator.com/
Kawa – http://www.macromedia.com/
NetBeans – http://www.netbeans.org/
Sun Forte for Java – http://www.sun.com/forte/ffj/index.html
Sun One Studio – http://forte.sun.com/ffj/index.html
VIM – http://www.vim.org/
Instalacja i narzędzia. Beta-kod i
maszyna wirtualna
mgr inż. Sylwia Glińska
Slide 2
Java to obiektowy język programowania stworzony przez grupę roboczą
pod kierunkiem Jamesa Goslinga z firmy Sun Microsystems.
W przeciwieństwie do proceduralno-obiektowego języka C++, Java jest
silnie ukierunkowana na obiektowość. Wszelkie dane i akcje na nich
podejmowane są pogrupowane w klasy.
Obecnym właścicielem tej technologii jest Oracle Corporation.
Slide 3
Czy jest Java
Java jest językiem zorientowanym obiektowo, który
w dużej mierze opiera się na C i C++.
Stanowi spójne logicznie środowisko programistyczne, posiadające
najlepsze cechy swoich wzorców.
W porównaniu z C i C++ Java jest zoptymalizowana. Usunięto
mechanizmy będące przyczyną częstych błędów programistycznych, takie
jak:
wskaźniki,
wielokrotne dziedziczenie,
przeciążanie operatorów.
Początkowo Java służyła wyłącznie do tworzenia interaktywnego
oprogramowania witryn internetowych. Z czasem obszar zastosowań
Javy był systematycznie rozszerzany.
Slide 4
JRE a JDK
Pakiety z hierarchii java i javax (dodatki wprowadzone w późniejszych
wersjach) należą do podstawowego zestawu klas rozprowadzanych jako
Java. Zestaw ten jest dostępny w dwóch wersjach: JRE (Java Runtime
Environment) – udostępnia kod bajtowy wszystkich klas standardowych i
wirtualną maszynę do ich uruchamiania, zaś JDK (Java Development Kit)
dodatkowo udostępnia źródła tych klas oraz dodatkowe narzędzia takie
jak kompilator, paker czy debuger. Podział ten wprowadzono dlatego, że
użytkownik Javy do uruchamiania programów potrzebuje tylko JRE,
natomiast do programowania działających aplikacji potrzeba już JDK.
Slide 5
Główne koncepcje
- Obiektowość
- Dziedziczenie
W Javie wszystkie obiekty są pochodną obiektu nadrzędnego (jego klasa
nazywa się po prostu Object), z którego dziedziczą podstawowe zachowania
i właściwości. Dzięki temu wszystkie mają wspólny podzbiór podstawowych
możliwości, takich jak ich: identyfikacja, porównywanie, kopiowanie,
niszczenie czy wsparcie dla programowania współbieżnego.
- Niezależność od architektury
Tę właściwość Java ma dzięki temu, że kod źródłowy programów pisanych w
Javie kompiluje się do kodu pośredniego. Powstały kod jest niezależny
od systemu operacyjnego i procesora, a wykonuje go tzw. wirtualna maszyna
Javy, która (między innymi) tłumaczy kod uniwersalny na kod dostosowany
do specyfiki konkretnego systemu operacyjnego i procesora. W tej
chwili wirtualna maszyna Javy jest już dostępna dla większości systemów
operacyjnych i procesorów.
Jednak z uwagi na to, że kod pośredni jest interpretowany, taki program jest
wolniejszy niż kompilowany do kodu maszynowego. Z tego względu
maszynę wirtualną często uzupełnia się o kompilator JIT ((ang. just-in-time
compilation)
to
metoda
wykonywania
programów
polegająca
na kompilacji do kodu maszynowego przed wykonaniem danego fragmentu
kodu).
Slide 6
- Sieciowość i obsługa programowania rozproszonego
Dzięki wykorzystaniu reguł obiektowości, Java nie widzi różnicy między danymi
płynącymi z pliku lokalnego a danymi z pliku dostępnego przez HTTP czy FTP.
Biblioteki
Javy
udostępniają
możliwość
pisania
aplikacji
uruchamianych
w przeglądarkach internetowych(aplety Javy) oraz aplikacji działających ciągle po
stronie serwera (serwlety).
-Niezawodność i bezpieczeństwo
Język robi dużo, by utrudnić programiście popełnienie błędu. Przede wszystkim Java
ma system wyjątków czyli sytuacji, gdy kod programu natrafia na nieprzewidywane
trudności, takie jak np.:
•operacje na elemencie poza zadeklarowaną granicą tablicy lub elemencie
pustym
•czytanie z niedostępnego pliku lub nieprawidłowego adresu URL
•podanie nieprawidłowych danych przez użytkownika
W języku Java obsługa wyjątków jest obowiązkowa, (a nie dobrą wolą programisty)
bez tego program się nie skompiluje
Slide 7
Beta kod – kod generowany przez kompilator Javy. Kod ten jest zawarty w
plikach z rozszerzeniem .class. Kod ten nie jest bezpośrednio zrozumiały
przez żaden procesor. Dlatego potrzebny jest dodatkowy program, który go
zinterpretuje. Programem tym jest wirtualna maszyna Javy (JVM), która
stała się interfejsem między uniwersalnym kodem Javy a różnymi
platformami sprzętowo – platformowymi.
Slide 8
Java SE (Java Platform, Standard Edition znane wcześniej jako J2SE) –
specyfikacja opracowana przez firmę Sun Microsystems opisująca podstawową
wersję platformy Java. Pozwala tworzyć i uruchamiać aplikacje napisane w języku
Java na komputerach stacjonarnych i serwerach. Java SE zawiera klasy pozwalające
tworzyć aplikacje WWW. Stanowi podstawę dla Java EE (Java Platform, Enterprise
Edition).
Java Platform, Enterprise Edition (zwana również jako Java Enterprise, J2EE
oraz Java EE czasami tłumaczona jako Java Korporacyjna) jest szeroko
rozpowszechnioną serwerową platformą programistyczną języka Java. Definiuje
standard tworzenia aplikacji w języku programowania Java opartych o
wielowarstwową architekturę komponentową. Komponenty są zwykle osadzane
na serwerze aplikacyjnym obsługującym Java Enterprise. Standard ten określa
zestaw interfejsów programistycznych jakich musi dostarczać zgodny serwer
aplikacyjny.
Slide 9
Java Platform, Micro Edition lub Java ME (znana wcześniej jako Java 2 Platform,
Micro
Edition
lub
J2ME)
–
specyfikacja
opracowana
przez
firmę
Sun
Microsystems opisująca uproszczoną wersję platformy Java. Platforma Java ME
została zaprojektowana z myślą o tworzeniu aplikacji mobilnych dla urządzeń o
bardzo ograniczonych zasobach, takich jaktelefony komórkowe lub palmtopy. Ze
względu na ograniczenia techniczne takich urządzeń, tj. wolniejsze procesory,
mniejszą pamięć, Java ME posiada swój własny, okrojony w stosunku do Java
SE zbiór klas zwanych konfiguracją (ang. configuration).
Slide 10
JavaFX
W 2007 roku firma Sun ogłosiła swe plany wprowadzenia nowego języka
skryptowego o nazwie JavaFX Script. Cele przyświecające temu językowi są podobne
do tych, które zawsze towarzyszyły Javie:
prostota tworzenia aplikacji
niezależność od architektury
platformą uruchomieniową mają być komputery PC oraz urządzenia przenośne
(np. telefony komórkowe)
Język JavaFX Script nie jest zupełnie nowym produktem, lecz rozszerzeniem
wcześniejszej Javy. Nowe aplikacje będą funkcjonować bez żadnych modyfikacji na
każdej maszynie wirtualnej Javy.
Tym posunięciem firma Sun stara się dorównać konkurencji, która promuje takie
rozwiązania jak:
technologia Flex (Adobe)
Silverlight (Microsoft)
Slide 11
Zawartość pakietu SDK (JDK)
Po zainstalowaniu pakietu Java 7 SDK, SE
w katalogu jdk1.7.0 zostanie umieszczony
podkatalog bin zawierający szereg programów
usługowych. Najważniejsze to:
javac – kompilator,
java - interpreter,
appletviewer – przeglądarka apletów,
javadoc - generator dokumentacji,
jdb – debuger,
jar – narzędzie do tworzenia archiwów.
Slide 12
Edytory
Zintegrowane środowiska programistyczne Javy
Borland JBuilder – http://www.borland.com/products/download/
Eclipse – http://www.eclipse.org/
IBM VisualAge for Java – http://www7.software.ibm.com/vad.nsf
JCreator – http://www.jcreator.com/
Kawa – http://www.macromedia.com/
NetBeans – http://www.netbeans.org/
Sun Forte for Java – http://www.sun.com/forte/ffj/index.html
Sun One Studio – http://forte.sun.com/ffj/index.html
VIM – http://www.vim.org/