Java Z Wikibooks, biblioteki wolnych podr�cznik�w. > Java � Przejd� | Edytuj Skocz do: nawigacji, wyszukiwania Spis tre�ci [ukryj] * 1 Cechy Javy przemawiaj�ce za jej wyborem * 2 Wady, o kt�rych warto pami�ta� * 3 Czego potrzebujesz, �eby zacz�� * 4 Java z punktu widzenia programisty o 4.1 �rodowisko uruchomieniowe i developerskie o 4.2 Kod wykonywalny programu o 4.3 Zwalnianie pami�ci w j�zyku Java - Garbage Collector o 4.4 Notka dla programist�w C++ * 5 Nauka programowania w j�zyku Java * 6 Komunikacja z u�ytkownikiem * 7 Kurs podstawowy o 7.1 Jak kompilowa� / uruchamia� programy o 7.2 Struktura podstawowego programu + 7.2.1 Struktura programu dla zaawansowanych o 7.3 Zmienne + 7.3.1 Typy zmiennych * 8 Pierwszy program o 8.1 Obiektowe podstawy o 8.2 Przyk�ad 1 o 8.3 Przyk�ad 2 o 8.4 Przyk�ad 3 o 8.5 Przyk�ad 4 o 8.6 Przyk�ad 5 - prosta grafika * 9 Narz�dzia o 9.1 Edytory o 9.2 IDE o 9.3 Co wybra� ? * 10 Warto przeczyta� * 11 Linki zewn�trzne [edytuj] Cechy Javy przemawiaj�ce za jej wyborem * Przeno�no�� - mo�esz uruchomi� program na ka�dym systemie i sprz�cie, na kt�ry istnieje implementacja wirtualnej maszyny Java. * Wygoda - podstawowe klasy i mechanizmy Java s� zaimplementowane tak, �e dostarczaj� programi�cie wygodnych w u�yciu bibliotek, kt�ra w wielu przypadkach znacznie przy�pieszaj� tworzenie aplikacji. * Szybko�� tworzenia aplikacji - w Java aplikacje pisze si� szybciej ni� w niekt�rych innych j�zykach programowania. Wszystko dzi�ki u�ytecznym klasom i m�drze zaplanowanym bibliotekom, narz�dziom oraz IDE. * Du�e wsparcie ze strony tw�rc�w �rodowisk programowania - dzi�ki �rodowiskom IDE, takim jak NetBeans czy Eclipse, programy mo�esz tworzy� jeszcze szybciej i jeszcze wydajniej u�ywaj�c profesjonalnych narz�dzi, kt�re u�atwi� tworzenie du�ych aplikacji i panowanie nad tworzeniem oraz utrzymywaniem kodu. * Ciekawe mo�liwo�ci tworzenia interfejsu u�ytkownika - mo�liwo�� dost�pu do wygodnych w u�yciu bibliotek i narz�dzi pozwalaj�cych szybko i bezbole�nie stworzy� niezale�ny od systemu i przeno�ny interfejs graficzny dla aplikacji. Biblioteki graficzne udost�pniaj� metody, kt�re s� dok�adnie tym, czego potrzebujesz. * Du�a ilo�� publikacji - w sieci jest sporo informacji na temat j�zyka Java. Jest to ogromna zaleta szczeg�lnie dla os�b ucz�cych si� tego j�zyka. W Internecie znale�� mo�na sporo przyk�adowego kodu, artyku��w czy tutoriali. * Garbage collection, czyli automatyczne zwalnianie nieu�ywanych ju� obszar�w pami�ci [edytuj] Wady, o kt�rych warto pami�ta� * Programy uruchamiane pod maszyn� wirtualn� dzia�aj� wolniej (ni� np. programy napisane w C++), dlatego te� niezbyt dobrze nadaje si� do zastosowa� czasu rzeczywistego * U�ytkownik potrzebuje zainstalowanej maszyny wirtualnej, aby m�c uruchomi� nasz program [edytuj] Czego potrzebujesz, �eby zacz�� Wikipedia, nasz siostrzany projekt, zawiera artyku� na temat Java. Java to nie tylko j�zyk programowania - to r�wnie� �rodowisko uruchomieniowe, w kt�rym dzia�aj� programy, tak zwana Wirtualna Maszyna Java (Java Virtual Machine - JVM). Java jest zaliczana do j�zyk�w kompilowano-interpretowanych - aby napisane przez nas programy zadzia�a�y, wymagany jest kompilator, kt�ry przekszta�ci kod �r�d�owy do tzw. binary code, czyli odpowiednika kodu maszynowego rozumianego przez JVM (w tej ksi��ce funkcjonuje r�wnie� termin kod bajtowy). Zar�wno JVM jak i kompilator s� dostarczane za darmo przez producenta Javy, firm� Sun. Najlepiej �ci�gn�� wszystko w jednym pakiecie, kt�ry obecnie nosi nazw� Java SE (Java Platform, Standard Edition). Java SE jest dost�pna na wiele platform , w tym dla system�w 32- i 64-bitowych Windows i GNU/Linux, i b�dzie to wszystko, czego potrzebujemy do rozpocz�cia pracy. [edytuj] Java z punktu widzenia programisty [edytuj] �rodowisko uruchomieniowe i developerskie Aby dobrze programowa�, warto zrozumie�, jak wygl�da ca�e pod�o�e mechanizmu Java. Pierwszym podstawowym elementem jest JRE (Java Runtime Environment - �rodowisko uruchomieniowe Javy). JRE jest niezb�dne do uruchamiania aplikacji Java na komputerze. A co to oznacza dla nas programist�w? Oznacza nie mniej, nie wi�cej, a dok�adnie tyle, �e programy pisane w tym j�zyku uruchamiane s� nie "w komputerze", ale w pewnym �rodowisku dzia�aj�cym na komputerze. Dzi�ki temu jeste�my pewni, �e je�li powstanie implementacja Wirtualnej Maszyny Java (JRE - w naszym przypadku) na jak�kolwiek maszyn�, to b�dziemy mogli na tej maszynie uruchomi� nasz program bez wzgl�du na to, czy b�dzie to: Atari ST, XBOX czy najnowsza wersja tostera marki "dla Ciebie dla Domu". Dzi�ki temu programy pisane w Javie b�d� mog�y by� uruchamiane nawet na sprz�cie, kt�ry pojawi si� za 10-20 lat, o ile b�dzie istnia�a implementacja Wirtualnej Maszyny Java dla tych urz�dze�. Wykonywanie aplikacji j�zyka Java poprzez JRE rozwija�o si� w nast�puj�cych kierunkach: * Pocz�tkowo program m�g� by� interpretowany instrukcja po instrukcji (podobnie jak w j�zykach skryptowych) jednak rozwi�zanie to by�o bardzo niewydajne i powodowa�o, �e programy napisane w j�zyku Java dzia�a�y bardzo wolno. * Aby zwi�kszy� wydajno�� program�w napisanych w j�zyku Java w nowoczesnych maszynach wirtualnych Java, zaimplementowano mechanizmy maj�ce przy�pieszy� dzia�anie program�w. Jednym z nich jest technika JIT (Just In Time). Technologia Just In Time kompiluje kod bezpo�rednio przed jego wykonaniem. Dzi�ki temu kompilowane s� tylko i wy��cznie funkcje czy klasy, kt�rych u�ywamy w naszym programie (a nie ca�y program). JIT w po��czeniu z optymalizacj� adaptacyjn� pozwala dzia�a� programom napisanych w Java niemal tak szybko jak aplikacjom C/C++. Poza JRE (niezb�dnym u�ytkownikowi) istnieje inna popularna forma dystrybucji pakietu Java. JDK (Java Development Kit), zwana r�wnie� SDK (Software Development Kit). To dystrybucja j�zyka Java dla os�b tworz�cych kod w j�zyku Java. Poza �rodowiskiem uruchomieniowym zawiera mi�dzy innymi: kompilator, dokumentacj�/pomoc i debugger. [edytuj] Kod wykonywalny programu Po napisaniu kodu �r�d�owego program kompilowany jest do bytecodu. Nie jest to jeszcze kod zrozumia�y dla procesora w spos�b bezpo�redni, kt�ry pozwala�by nam na jego uruchomienie. Jest to jednak kod zapisany w okre�lonym formacie, kt�ry mo�e zosta� poprawnie zinterpretowany przez Maszyn� Wirtualn� Java, przet�umaczony na kod wykonywalny i uruchomiony. [edytuj] Zwalnianie pami�ci w j�zyku Java - Garbage Collector W j�zyku Java w tle, podczas dzia�ania naszego programu, dzia�a mechanizm zwany Garbage Collector (zbieracz �mieci). Ma on na celu zwolnienie programisty z obowi�zku dbania o zwalnianie pami�ci w programie. Stosuje on szereg algorytm�w maj�cych na celu wy�apanie niepotrzebnych obiekt�w i usuni�cie ich. Posiada to swoje wady i zalety. Zalet� jest to, �e programista nie musi pami�ta� o zniszczeniu obiektu lub zwolnieniu pami�ci. Mamy wolny czas, kt�ry normalnie po�wi�ciliby�my na tworzenie destruktor�w i czasoch�onne my�lenie nad tym, czy oby na pewno dobrze alokuj� i zwalniam ca�� pami��. Wad� jest to, �e dzia�anie Garbage Collectora zajmuje czas. Nigdy nie wiadomo kiedy Garbage Collector postanowi zadzia�a� i wyszuka� oraz zwr�ci� do systemu nieu�ywan� ju� przez program pami��. Przez to Java nie mo�e by� u�ywana w systemach czasu rzeczywistego, poniewa� dzia�anie programu mo�e by� w ka�dej chwili wstrzymane na od�miecanie. Najprostsze mechanizmy dzia�anie Garbage Collectora to usuwanie obiekt�w, dla kt�rych ilo�� referencji wynosi zero (z takiego obiektu nie skorzystamy bo nie mamy si� do niego jak odwo�a�, wi�c nie ma sensu trzyma� go w pami�ci) czy te� odnajdywanie tr�jk�cik�w (referencja A wskazuje na B, B wskazuje na C ale C znowu wskazuje na A). [edytuj] Notka dla programist�w C++ * W Java nie ma wielko�ci globalnych. Poniewa� w dobrym przybli�eniu wszystko jest klas� (dok�adnie rzecz ujmuj�c mo�e by� klas�), wi�c warto�� globalna nie istnieje (ka�da warto�� jest sk�adow� jakiej� klasy lub zmienn� lokaln�). * Wszystkie klasy s� pochodnymi od jednej wsp�lnej klasy Object. * W Java nie ma wielokrotnego dziedziczenia. W Java wyst�puje za to mechanizm interfejs�w. Jedna klasa mo�e implementowa� wiele interfejs�w. * Brak preprocesora. Nie jest potrzebny poniewa� wszystkim mo�e zaj�� si� Wirtualna Maszyna Java. * Nie ma plik�w nag��wkowych. Program podzielny jest na pakiety. * Brak typedef - nie mo�emy tworzy� w�asnych typ�w. * Brak mo�liwo�ci przeci��ania operator�w. * Operator zakresu :: jest zast�piony znakiem kropki. * W j�zyku Java nie istnieje mo�liwo�� przekazania domy�lnej warto�ci, ani listy inicjalizuj�cej w C++. * Java posiada wsparcie dla wielow�tkowo�ci. * Brak destruktor�w i konieczno�ci pami�tania o zwalnianiu pami�ci. Dzia�a garbage collector, kt�ry robi to za nas. * Nie ma wska�nik�w - wszystko przekazywane jest przez referencje. * W Javie wszystkie argumenty s� przekazywane do funkcji przez warto��. [edytuj] Nauka programowania w j�zyku Java Nauk� programowania mo�na podzieli� na pewne etapy. Pierwszy to poznanie struktur j�zyka takich jak: p�tle, warunki, operatory, podstawowe wyra�enia i sk�adnia. Nie da si� w tym czasie unikn�� osobnego dzia�u, jakim jest korzystanie z bibliotek dost�pnych w j�zyku. Cho�by po to, by wy�wietli� co� na ekranie lub pobra� wiadomo�� od u�ytkownika. Te dwa elementy przeplataj� si� w pocz�tkowych etapach nauki j�zyka. P�niej przychodzi czas na szczeg�y zwi�zane z semantyk� oraz sk�adni� kodu, niuansami, dzi�ki kt�rym mo�na tworzy� optymalny kod i pisa� kod sprytniej i wydajniej. Poza na...
pikodat