JAVA


java - jezyk programowania

JĘZYK PROGRAMOWANIA JAVA
Opracowana przez SUN MICROSYSTEMS Java jest językiem obiektowym zblizonym do C++. Skupia ona na sobie sporo uwagi z powodu przenośności, bezpieczeństwa i wsparcia dla rozproszonego (distributed) programowania, co spowodowało, że stała się użyteczna dla programowania w Internecie.

OBIEKTOWE ZORIENTOWANIE JAVY
Java jest całkowicie obiektowo zorientowanym językiem. Oznacza to, że wszystko musi być robione poprzez wywołanie odpowiedniej metody (funkcji składowej) na rzecz obiektu Javy. Na sam początek interesująca informacja, nie ma czegoś takiego jak osobna funkcja main. Zamiast tego należy zacząć patrzeć na całą aplikację jak na obiekt pewnej klasy. Większość aplikacji w Javie tworzy nową klasę poprzez dziedziczenie z pierwotnej klasy Javy Object i implementuje wszystko czego potrzebują, ale można zaoszczędzić na czasie i poprawić spójność pomiędzy aplikacjami poprzez utworzenie odpowiedniej klasy bazowej obsługującej właściwości wspólne dla wszystkich aplikacji.

WYKONYWANIE PROGRAMU W JAVIE NA MASZYNIE WIRTUALNEJ
Kod żródłowy programu w Javie nie jest kompilowany do normalnego kodu maszynowego. Jest on zamieniany na kod dla maszyny wirtualnej specjalnie zaprojektowanej do wspierania mechanizmów istniejących w Javie. Następnie interpreter Javy wykonuje przetłumaczony kod. Nie jest wymagane osobne linkowanie (dołączanie bibliotek). Są one dynamicznie dołączane i ładowane w czasie działania przez interpreter Javy. Dodatkowo interpreter sprawdza ładowany kod pod względem błędów i zachowania zbliżonego do wirusów. Następnie może on być interpretowany lub zmieniony na kod maszynowy dla platformy na której uruchomiono aplikecje. Taka opóźniona konwersja do kodu maszynowego pozwala dowolnej maszynie i systemowi operacyjnemu z interpreterem Javy na uruchomienie aplikacji bez rekompilacji. Poniższy przykład wyjaśni zalety takiego rozwiązania. Jeżeli aplikacja pracująca z bazą danych (znajdująca się na serwerze) jest całkowicie napisana w języku Java to każdy korzystający z takiej bazy jako klient potrzebuje do pracy tylko przeglądarki interpretowej - oczywiście kompatybilnej. Przy takim rozwiązaniu nie ma znaczenia jaką platformę sprzętową lub jakiego systemu używa. Podłączenie do sieci nowych stanowisk pracy sprowadza się więc tylko do zwykłego połączenia kabli. Cały system staje się w pełni otwarty, umożliwiając korzystanie z zasobów bazy danych wszystkim użytkownikom Internetu.

APPLET
Większość zainteresowania Javą koncentruje się na czymś co jest określane jako applet (w polskiej literaturze używa się słowa dodatek). Applet jest podobny do programu, ale jest ładowany i uruchamiany przez przeglądarkę obsługującą Javę, taką jak np. HotJava, Netscape, Navigator. Zwykły dokument w HTML może zawierać odwołanie do appleta co powoduje, że odpowiedni applet zostaje załadowany i uruchomiony (w taki sam sposób jak są wstawiane odwołania do obrazków). Applet otrzymuje obszar na ekranie przeznaczony do pracy i zwykle (ale nie zawsze) jest zorientowany (w GUI).
Aplikacje w Javie, tak samo jak każdy applet pisane są w języku Java, ale są ładowane i wykonywane bezpośrednio przez interpreter Javy, a nie przez przeglądarkę. Zwykle są to programy działające z linii poleceń, ale nie jest to regułą.

BRAK WSKAŹNIKÓW
Java nie posiada wskaźników, zamiast tego obiekty są przekazywane jako argumenty bezpośrednio, zamiast przekazywania wskaźników do obiektów. Dodatkowo, należy manipulować tablicami używając indeksów. Żadne z tych ograniczeń nie jest poważnym problemem w większości wypadków; jednakże brak wskaźników staje się problemem w systemach, które używają wskaźników funkcji lub metod.

ODŚMIECANIE
W językach z odśmiecaniem środowisko czasu wykonania programu prowadzi rejestrację, który obszar pamięci jest używany, a które nie. Kiedy kawałek pamięci nie jest dłużej potrzebny, system automatycznie żąda jego zwrotu. Przykładem może być obiekt utworzony wewnątrz metody, ale nie przekazywany z powrotem do metody wywołującej i niezapamiętany jako część globalnego obiektu pozakończeniu metody nie może on być używany. System "wie", który obiekt jest używany, a który w żaden sposób nie może być dłużej używany, ponieważ nie istnieją odwołania do niego (jest to jedna z korzyści języka nie posiadającego wskaźników). Jako rezultat nie ma powodu przejmowania się zwalanianiem obiektów kiedy nie są już używane, lub zwalniania pamięci wymaganej przez jakieś wywołanie funkcji. Znaczącą część czasu i wysiłku poświęcana podczas uruchamiania programów w C++ jest spowodowana błędami polegającymi na zwalnianiu obiektów, które są ciagle używane, lub nie zwalnianiu pamięci spowodowanym nieusunięciem nieużywanego już obiektu. Użycie przez Javę odśmiecania znacząco redukuje te błędy, chociaż nie eliminuje ich - niepoprawna ligika programu może ciągle pozostawiać nieużywane obiekty połączone z aktywnymi strukturami danych, w związku z czym nie mogą zostać usunięte przez odśmiecanie. Wiele klas w C++ zawiera destruktory, głównie do zwalniania pomocniczych zmiennych używanych przez obiekt danej klasy. Fakt, że Java jest językiem z odśmieceniem oznacza, że nie ma potrzeby pisania destruktorów dla tych klas. Nie oznacza to jednak, że można zapomnieć o pisaniu destruktorów dla wszystkich klas. Np. obiekt, który otwiera połączenie sieciowe powinien po sobie posprzątać poprzez zamknięcie połączenia kiedy jest niszczony. W Javie destruktor jest znany jako metoda finalizująca.

artykuł oparty na wiedzy zdobytej w Technikum Hutniczo-Mechaniczym...


www.piotrsog.prv.pl