Powstanie języka Java jest jednym z rezultatów szeroko zakrojonych prac projektowych związanych z obsługą nowoczesnych urządzeń pracujących w czasie rzeczywistym. Urządzenia te potrzebowały języka, który generuje niewielki kod wynikowy i jest niezależny od sprzętu. Pierwotnie, w systemach obsługujących te urządzenia używano języka C++, jednak ze względu na niedoskonałości kompilatorów C++ i różnice występujące między poszczególnymi jego realizacjami, powstał pomysł stworzenia nowego języka, całkowicie niezależnego od sprzętu czyli np.: procesorów, układów wejścia-wyjścia i systemu operacyjnego. Program napisany w Javie może być zatem wykonywany zarówno na komputerze PC (pod kontrolą np.: systemu OS/2, Windows 95 lub Windows NT), na Macintosh'u, a także na maszynie UNIX'owej pod warunkiem, że jest tam również zainstalowany specjalny program interpretujący Javę.
Java zawiera elementy językowe ułatwiające pisanie programów przeznaczonych do pracy w sieci Internet. Do dyspozycji mamy zatem obsługę protokołów TCP/IP, co umożliwia łatwe korzystanie z zasobów znajdujących się na odległym komputerze. Java generuje bardzo mały "objętościowo" kod wynikowy, co wiąże się z wymaganiem minimalizacji czasu przesyłania programu poprzez Internet, szczególnie na liniach przesyłowych o małej przepustowości. Java jest językiem zapewniającym bezpieczeństwo użytkownikowi ładującemu program z Internetu, poprzez wprowadzenie kontroli autentyczności kodu.
W języku Java zrealizowano paradygmat programowania zorientowanego obiektowo, z wbudowanymi mechanizmami współbieżności, obsługi sytuacji wyjątkowych i kontrolą przydziału pamięci. Tekstowo program w Javie wygląda podobnie, jak napisany języku C++. Każdy, kto posługuje się językiem C++ regularnie, nie będzie miał większych problemów z "przesiadką" na Javę. Jednak Java różni się od C++, mianowicie:
Ponadto, wynikiem kompilacji programów Javy jest kod pośredni nazywany kodem bajtowym Javy (ang. Java Byte Code) a nie kod maszynowy, jak w C++.
Programiści mają do dyspozycji setki języków programowania, od języków w pełni interpretowanych jak UNIX Shell, TCL, Perl i innych do języków niskiego poziomu jak C i C++.
W poniższej tabeli porównano właściwości Javy z właściwościami innymi języków programowania. Poniższe zestawienie przygotowano na podstawie materiałów zawartych w dokumencie HTML "The Java(tm) Language Environment: A White Paper" firmy Sun
Porównanie atrybutów Javy z własnościami innych językami programowania
Jak wynika z powyższego zestawienia, Java jest językiem programowania o dużych możliwościach, i dlatego idealnie nadaje się do pisania programów przeznaczonych dla sieci Internet, gdzie stała się najpopularniejszym i najczęściej wykorzystywanym językiem programowania.
Celem pracy jest próba systematycznego opisu języka, z podziałem na część abstrahującą od realizacji i część opisującą realizację, zwłaszcza, że w chwili rozpoczęcia pisania pracy nie było dobrej literatury opisującej język, a zdobywa on znaczną popularność i gwałtownie się rozwija. W kwietniu br. zmieniono i rozszerzono specyfikację języka, w pracy opisano te zmiany, a dotyczą one m.in.:
Jak dotąd, nie ma literatury w języku polskim, opisującej te zmiany. Dlatego praca może stanowić cenny materiał dydaktyczny dla studentów kierunków informatycznych, szczególnie, że pisanie programów działających i wykorzystujących zasoby sieci Internet jest w Javie proste.
Pracę podzielono na rozdziały, z których
największy i najważniejszy jest rozdział
2, przedstawiający ogólną
charakterystykę języka Java. W rozdziale 3 omówiono techniczne zagadnienia implementacji języka
Java. Rozdział
4 pokazuje przykładowe zastosowania
Javy do pisania programów działających w sieci Internet (aplet
wykorzystujący protokół SMTP). W rozdziale 5 zebrano uwagi końcowe. W rozdziale 6 zestawiono pozycje literaturowe. Na końcu znajdują się dodatki, w których m.in. opisano standard kodowania znaków
Unicode i przedstawiono
zmiany wprowadzone w wersji Javy 1.1 w
stosunku do wersji 1.0 języka, dotyczące biblioteki graficznej.