Java-wprowadzenie, S


Język JAVA - Wprowadzenie

Język Java jest niewątpliwie najbardziej rozwijającym się obecnie środowiskiem tworzenia aplikacji. Czerpie on to co najlepsze z takich języków jak C++ czy Smaltalk przy zdecydowanie prostszej i bardziej czytelnej składni (konstrukcji) programów. Zawiera elementy programowania zarówno strukturalnego jak i obiektowego, zdarzeniowego jak i współbieżnego. Poprzez standardowe jak i rozszerzone biblioteki wkracza w różnorodne rejony zastosowań takie jak np. karty inteligentne i elektronika, systemy zarządzania bazami danych, obsługa multimediów, Internet, grafika 3D, kryptografia, itd.

Java zdecydowanie różni się od innych języków trzeciej generacji tym, że jest językiem interpretowanym a nie kompilowanym. Oznacza to, że powstały w wyniku kompilacji kod wynikowy nie jest programem, jaki można niezależnie uruchomić, lecz stanowi tzw. Beta-kod, który jest interpretowany przez Maszynę Wirtualną (JavaVM) pracującą w określonym środowisku.

Maszyna Wirtualna umożliwia odcięcie się od wszystkich poziomów sprzętowo-programowych będących poniżej Maszyny Wirtualnej. Koncepcja ta jest powszechna również w samym języku JAVA, dzięki czemu poprzez stworzenie abstrakcyjnych klas i metod podstawowe biblioteki Javy nie muszą być nieustannie rozbudowywane.

Historia języka Java.

B-kod i maszyna wirtualna, czyli kompilacja w Javie.

Każdy napisany program przed wykonaniem musi być przetłumaczony na język zrozumiały dla komputera, czyli poddany procesowi kompilacji.

W przypadku języków takich jak C, C++ czy Pascal jest to zazwyczaj kompilacja do kodu natywnego procesora, tzn. kodu, który procesor jest w stanie bezpośrednio wykonać. W przypadku Javy tak jednak być nie może, jako że programy nie były by wtedy przenośne. Każdy procesor ma inny zestaw instrukcji, a zatem program skompilowany dla jednego nie byłby zrozumiały dla drugiego.

Dlatego też w przypadku Javy efektem kompilacji jest kod pośredni, tzw. b-kod (z ang. b-code, byte-code). Zawarty jest on w plikach z rozszerzeniem class

Kompilacja zostaje wykonana przez kompilator - program javac. Kompilator ten pracuje w wierszu poleceń i przyjmuje w postaci argumentu jeden lub więcej plików z kodem źródłowym. Zatem jego schematyczne wywołanie to:

javac nazwa_pliku.java

lub dla kilku plików:

javac nazwa_pliku1.java nazwa_pliku2.java nazwa_pliku3.java

Aby b-kod mógł zostać zrozumiany przez procesor, musi być ponownie przetłumaczony. Dokonuje tego tzw. maszyna wirtualna Javy (JavaVM), czyli interpreter b-kodu dla danego typu procesora (i systemu operacyjnego). Wynika z tego że, wystarczy aby dla każdego systemu powstała dedykowana mu maszyna wirtualna Javy, a będzie można uruchomić na nim każdy program w Javie bez wykonania dodatkowych modyfikacji. Jest to niestety, również jedna z przyczyn powolności Javy. Kod interpretowany jest, bowiem wolniejszy od wykonywanego bezpośrednio na danym procesorze.

Obecnie ma to coraz mniejsze znaczenie -powstają coraz lepsze maszyny wirtualne, zawierające np. kompilatory JIT (z ang. Just In Time), które w locie kompilują część (lub nawet całość) b-kodu do kodu natywnego procesora -niemniej Java wciąż jest jednak wolniejsza niż np. C czy C++.

0x08 graphic

Biblioteki klas, metod, pól, itp., zarówno te zależne sprzętowo jak i te niezależne sprzętowo stworzone już w Javie znajdują się w postaci skompilowanej w Java API. Podsumowując Java VM oraz Java API tworzą platformę Javy zwane często środowiskiem uruchomieniowym aplikacji - Java Runtime Engine (JRE).

Podsumowując, aby napisać aplikacje w Javie należy wykonywać poniższe kroki:

1. Napisanie z pomocą dowolnego edytora tekstu kodu źródłowego programu zawierającego klasę publiczną o nazwie takiej samej (dokładnie takiej samej z uwzględnieniem wielkości znaków) jak docelowa nazwa programu np. Main.

2. Zapisanie kodu źródłowego jako pliku o danej nazwie z rozszerzeniem .java, np. Main.java

3. Kompilacja kodu źródłowego zawartego w pliku z rozszerzeniem .java do pliku docelowego o rozszerzeniu .class zawierającego Beta-kod np.

c:\ javac main.java

gdzie:

javac - nazwa komilatora programów Javy stworzonego przez Sun Microsystems (kompilator napisany w Javie),

Main.java - kod źródłowy programu do kompilacji (WAŻNE: podana nazwa pliku musi zawierać rozszerzenie .java).

W Wyniku kompilacji powstanie plik lub zestaw plików z tym samym trzonem nazwy o rozszerzeniu .class, np. Main.class.

4. Uruchomienie w środowisku interpretatora Beta-kodu, np.

c:\ java Main

gdzie:

java - nazwa interpretatora Javy stworzonego przez Sun Microsystems, inaczej uruchomienie Maszyny Wirtualnej,

Main - nazwa pliku z Beta-kodem programu w Javie kompilacji (WAŻNE: podana nazwa pliku nie może zawierać rozszerzenia .class).

Analiza sposobu działania „Pierwszego programu w Javie”.

Kod programu będzie wyglądał następująco:

public

class Main

{

public static void main (String args[])

{

System.out.println (“Pierwszy program w Javie”);

}

}

Aplikacja w języku Java to zdefiniowana klasa publiczna wraz z jedną ściśle określoną metodą statyczną o formie:

public static void main (String args[])

Tablica „args[]” będąca argumentem metody main() jest zbiorem argumentów wywołania aplikacji w ciele, której znajduje się metoda. Kolejność argumentów jest następująca: argument 1 wywołania umieszczany jest w args[0], argument 2 wywołania umieszczany jest w args[1], itd. Występująca nazwa „args” oznacza dynamicznie tworzony obiekt, który zawiera args.length elementów typu łańcuch znaków. Pole „length” oznacz, więc liczbę elementów tablicy. Łatwo jest, więc określić argumenty oraz ich liczbę korzystając z obiektu „args”. Warto zwrócić uwagę na to, że oznaczenie „length” jest własnością tablicy (ukrytym polem każdej tablicy) a nie metodą obiektu args. Istnieje metoda klasy String o nazwie „length()” (metody zawsze są zakończone nawiasami pustymi lub przechowującymi argumenty), łatwo, więc się pomylić. Dla zapamiętania różnicy posłużmy się prostym przykładem wywołania:

args.length - oznacz ilość elementów tablicy „args”;

args[0].length() -oznacza rozmiar zmiennej tekstowej o indeksie 0 w tablicy „args”.

Prosta aplikacja działająca w Javie wygląda następująco:

public class Main //deklaracja public class Main

{ //Początek public class Main

public static void main (String args[])//Deklaracja public static void main (String args[])

{ //Początek public static void main (String args[])

System.out.println (“Pierwszy program w Javie”);

} //Koniec public static void main (String args[])

} //Koniec public class Main

Zapisując powyższy kod do plik „Main.java”, kompilując poprzez podanie polecenia: „javac Main.java” można wykonać powstały Beta-kod „Main.class” używając interpretatora: „java Main”.

W ustalonej ramie klasy, w metodzie programu uruchomiono polecenie wysłania do strumienia wyjścia (na standardowe urządzenie wyjścia - monitor) łańcuch znaków „Pierwszy program w Javie”. Konstrukcja ta wymaga krótkiego komentarza. Słowo „System” występujące w poleceniu wydruku oznacza statyczne odwołanie się do elementu klasy System. Tym elementem jest pole o nazwie „out”, które stanowi zainicjowany obiekt typu PrintStream (strumień wydruku). Jedną z metod klasy PrintStream jest metoda strumień nazwie „println”, która wyświetla w formie tekstu podaną wartość argumentu oraz powoduje przejście do nowej linii (wysyłany znak końca linii). W podanym przykładzie nie ukazano jawnie tworzenia obiektu. Można, więc powyższy przykład nieco rozwinąć.

//klasa

class PrMain

{

//pola

String nazwa;

//konstruktor

PrMain(String nazwa)

{

this.nazwa=nazwa;

}

//metody

void opis()

{

System.out.println(nazwa+ ” program w Javie”);

}

}// koniec class PrMain

public class Main1

{

public static void main(String args[])

{

PrMain pierwszy = new PrMain(”Pierwszy”);

pierwszy.opis();

}// koniec public static void main(String args[])

}// koniec public class Main1

Uwagę należy zwrucić iż po kompilacji powyszego programu powstaną dwa nowe pliki: PrMain.class oraz Main1.class. Oddzielne klasy zawsze są kompilowane do osobnych plików. PrMain.class jest klasa pomocniczą klasy głównej Main1.class. Uruchomienie przez interpretator klasy pomocniczej wyświetli błąd o niezdefiniowanej klasie.

Jeszcze kilka zdań o Javie.

-Język kompilowany do tzw. b-kodu, wykonywanego następnie za pomocą wirtualnej maszyny Javy na komputerze klienta;

-Język zorientowany obiektowo z obsługą wszystkich mechanizmów obiektowości;

-Kod programu jest niezależny od kodu HTML i znajduje się w oddzielnych plikach;

-Zmienne i ich typ muszą być zadeklarowane przed ich użyciem w programie;

-Wszystkie odwołania do obiektów i funkcji są sprawdzane na etapie kompilacji;

-Ze względów bezpieczeństwa aplety, (w przeciwieństwie do aplikacji) nie mają możliwości zapisu na dysk twardy.



Wyszukiwarka

Podobne podstrony:
JAVA wprowadzenie
Funkcjonalność języka Java wprowadzone w wersji J2SE 5
Java, Wprowadzenie
Java Wprowadzenie 2
Java Wprowadzenie jawpro
Java Wprowadzenie
Java Wprowadzenie 2
JP SS 4 wprowadzenie Java
java 2 podstawy-1., wprowadzenie
wprowadzenie java kurs SDWSCOWNGKY5YT5VXF7MB5JO5FFO2QY2JJOI22Y
Wprowadzenie do Java
Wprowadzenie do Spring Framework dla programistow Java 2
Wprowadzenie do Spring Framework dla programistow Java wprsfj
Wprowadzenie do Spring Framework dla programistow Java
Wprowadzenie do jezyka Java Przewodnik krok po kroku
Wprowadzenie do Spring Framework dla programistow Java

więcej podobnych podstron