Video Kurs Pl - Logo
GEM, 32-700, Bochnia
ul. Proszowska 92
tel./kom.: 606 192 567
e-mail: videokurspl@gmail.com

Język programowania – Java

1. Podstawy programowania

Czym jest Java?

Java to nazwa języka programowania.

Czym jest język programowania?

Język to pewnego rodzaju sposób komunikacji (zbiór reguł), który jest zrozumiały dla określonej grupy np. ludzi. Język polski, angielski, włoski itd. jest znany przez ludzi, którzy znają konstrukcję wypowiedzi, słowa, definicje etc. tych języków. Język programowania, jest językiem rozumianym najczęściej przez programistów, czyli w przyszłości prawdopodobnie nas ;)

Java jak każdy inny język ma z góry nałożone pewnego rodzaju reguły semantyczne. Semantyka zajmuje się analizą znaczeń wyrazów, czyli po prostu określa, opisuje co ma jakie znaczenie. Odnośnie programowania oznacza to, że reguły semantyczne definiują (opisują) poszczególne symbole oraz ich funkcje (przeznaczenie) w naszym programie. Te reguły będziemy chcieli poznać.

Czym jest sam program (komputerowy)?

Słowo program oznacza pewnego rodzaju plan zamierzonych (zaplanowanych) czynności do wykonania.

Przykład z życia codziennego... mamy coś takiego jak programy telewizyjne, w których zamierzono, że o takiej, a takiej godzinie ma zostać pokazany na danej stacji telewizyjnej pewnego rodzaju film.

W programie komputerowym określamy nasze zamiary dotyczące wykonania pewnego rodzaju instrukcji (rozkazów) przeznaczonych do wykonania przez nasz komputer. Czyli program komputerowy są to instrukcje (rozkazy) do wykonania przez nasz komputer, uwzględniając, że te instrukcje zapisujemy w języku programowania. W naszym wypadku tym językiem programowania jest Java.

Jak widzimy możemy wywnioskować, że język programowania jest zrozumiały, bądź też będzie zrozumiany przez kogo? PRZEZ NAS... Oznacza to, że to co sobie zapiszemy w tym języku np. w notatniku, czy też jakimkolwiek edytorze tekstowym, nie będzie zrozumiane przez nasz komputer...

Więc w jaki sposób komputer rozumie Java i inne języki programowania?

Ponieważ komputer ma swój język i wygląda mniej więcej tak... ...0000010101010101010101010... język ten jak widzimy jest trudny do zrozumienia przez nas i pewnie ciężko by nam się pisało programy w takim języku :) Zera oraz jedynki symbolizują impulsy elektryczne otrzymywane przez nasz komputer. Ponieważ taki zapis jest dla nas ciężki oraz mało czytelny, piszemy w innym języku np. w Javie... ale przecież napisałem przed chwilą, że Java nie jest interpretowana przez komputer.

Potrzebujemy więc czegoś co przetworzy to co jest zrozumiałe i łatwe dla nas (kod napisany w języku programowania) na te niby nic nie znaczące zera oraz jedynki. Dla komputera oczywiście sprawa jest odwrotna. On nas nie rozumie: „Co oznaczają te wszystkie ptaszki (znaczki), co ten gość przed komputerem ma na myśli?”. Komputer wykonuje zawsze to, co mu się rozkaże, no chyba, że się coś zepsuje. Dla niego te wszystkie znaczki napisane w edytorze tekstowym są po prostu liczbami, które później zamienia na znaki. Nic więcej mu nie kazano. Nic więcej na ten temat nie wie.

To coś co interpretuje, sprawdza poprawność, przetwarza znaczki napisane przy pomocy języka programowania na język zrozumiały przez komputer (maszynę), czyli język maszynowy, nazywa się kompilatorem.

Tym samym odpowiedzieliśmy sobie na pytanie: Czym jest kompilator?

2. Java – wyjątkowy proces kompilacji

Dlaczego programy napisane w Java mogą zostać uruchomione pod praktycznie każdym systemem operacyjnym?

Normalnie kompilacja (proces kompilacji) polega na tym, że kod źródłowy, czyli ten, który piszemy przy pomocy języka programowania, jest tłumaczony na zbiór instrukcji maszynowych (rozkazów dla komputera), które mogą zostać wykonane np. przez procesor.

Procesor to urządzenie, które potrafi wykonywać rozkazy. Jakie rozkazy potrafi wykonywać? Jak szybko to robi? oraz w jaki sposób je wykonuje ? - zależy od producenta procesora, a co za tym idzie budowy procesora, czyli jego architektury.

W takim razie, jeżeli mamy dwa różne procesory to może to sprawić, że program raz skompilowany, może działać pod jednym procesorem, a drugim już nie... trzeba by było skompilować go ponownie, aby działał także na tym drugim procesorze. Czyli nasze programy zmieniając procesor muszą być teoretyczne ponownie skompilowane.

Na szczęście jest coś takiego jak system operacyjny, który tworzy pewnego rodzaju środowisko do uruchamiania i kontroli tego wszystkiego. Tak więc kompilując coś pod systemem operacyjnym np. Windows XP, gdy uruchamiamy nasze skompilowane programy pod Windows XP, powinny one działać pod teoretycznie każdym znanym procesorem przez Windows XP.

Jednak problem pojawia się, gdy skompilujemy program pod Windows XP i chcemy go odpalić pod np. Linuksem. Są to inne systemy operacyjne i kompilacja w nich powinna zajść w trochę inny sposób, przez co nasze programy powinny przejść przez ponowną kompilację, aby zadziałały pod innymi systemami operacyjnymi.

Java jednak pod kątem kompilacji znacznie się różni, nie ma znaczenia, gdzie zostanie uruchomiony skompilowany kod źródłowy, ponieważ kod źródłowy napisany w Javie jest kompilowany do czegoś pomiędzy kodem źródłowym, a językiem maszynowym – jest to kod pośredni. Kod pośredni jest zaprojektowany tak, aby był łatwy do zinterpretowania na każdej maszynie, przez co łatwo przetłumaczyć go na język maszynowy.

Kod pośredni jest niezależny od systemu operacyjnego oraz procesora. Skompilowany tak kod wykonywany jest przez tzw. wirtualną maszynę, czyli środowisko uruchomieniowe, które składa się z funkcji współpracujących z systemami operacyjnymi.

W języku programowania Java funkcję wirtualnej maszyny pełni JVM (Java Virtual Machine). Wirtualna maszyna między innymi tłumaczy kod pośredni na kod dostosowany do konkretnego systemu operacyjnego i procesora, czyli kod maszynowy. Wirtualna maszyna kontroluje operacje wykonywane przez napisany przez nas program. Program taki może odwoływać się do np. klawiatury, myszki etc. lub systemu operacyjnego. Wszystkie te operacje są kontrolowane przez maszynę wirtualną, przez co w pewnym sensie program „myśli”, że jest wykonywany na rzeczywistym sprzęcie, czyli rzeczywistej maszynie (komputerze), dzieje się to jednak dzięki wirtualnej maszynie, stąd też nazwa "wirtualna".

Wirtualna maszyna Javy (JVM) jest dostępna dla większości systemów operacyjnych oraz procesorów, przez co programy napisane w języku Java mogą zostać uruchomione praktycznie pod każdym systemem operacyjnym o dowolnym procesorze.

3. Java na tle innych języków

Czy Java jest wydajna...

Od razu nasuwa się wniosek, że skoro istnieje podczas kompilacji coś pomiędzy kodem źródłowym, a kodem maszynowym to program powinien wykonywać się wolniej – no i tak jest, ale... niezupełnie aż tak wolno jak się może wydawać ;)

Jeżeli kod pośredni jest za każdym razem interpretowany w całości to oczywiście taki program musi być wolniejszy niż program bezpośrednio kompilowany do kodu maszynowego, lecz w Javie istnieje sobie pewnego rodzaju bajer...

Tym bajerem jest kompilator czasu rzeczywistego JIT (Just In Time). Polega to na tym, że przez maszynę wirtualną kod pośredni jest kompilowany do kodu maszynowego w „locie”. Oznacza to, że jest on kompilowany tylko wtedy, gdy jest potrzebny. Kiedy jest potrzebny? Wtedy, jeżeli jakiś fragment kodu zostanie użyty np. podczas pierwszego wywołania funkcji.

Oczywiście dalej ten sposób jest wolniejszy od zwykłej kompilacji, ale na pewno przyspiesza to działanie niektórych programów nawet kilkunastokrotnie. Dodatkowo taki kompilator JIT potrafi np. sprawdzić, które fragmenty kodu są najczęściej wykonywane i optymalizować wykonywane fragmenty ze względu na prędkość.

Java – czy są jeszcze jakieś plusy?

Język programowania Java ma jeszcze dużo plusów, lecz pisanie o nich, gdy prawdopodobnie nie masz wiadomości na temat klas, wielowątkowości, tablicach, alokacji, de-alokacji pamięci etc. nie ma większego sensu, bo z takiego tekstu i tak na ten moment nie wyniknie nic sensownego. Po zapoznaniu się z wyżej wymienionymi wiadomościami sprawa będzie dużo prostsza. Mogę tylko w skrócie zapewnić Was, że na pewno Java jest językiem programowania dużo łatwiejszym do ogarnięcia oraz mniej podatnym na popełnianie błędów przez programistę niż inne języki np. C++.

Gdzie używamy języka programowania Java ?

Java używana jest najczęściej tam, gdzie bardziej jest ceniona nie szybkość ale chcemy, aby nasze programy działały na każdym systemie operacyjnym oraz procesorze czyli np. w tworzeniu aplikacji komputerowych, komórkowych. Java ma także możliwość tworzenia apletów, czyli aplikacji przeznaczonych do umieszczenia na stronę internetową. Jednak proszę nie mylić JAVA z JAVASCRIPT, są to dwa różne języki. JavaScript jest językiem skryptowym przeznaczonym tylko do stron internetowych i różni się od Java w baaaardzo wielu aspektach.

Czy znajomość JAVA wystarczy mi do wszystkiego?

Jeżeli chcesz programować nie tylko aplikacje, ale także sterowniki lub inne programy w których bardziej zależy na szybkości, a nie przenośności to warto poznać także języki takie jak C lub też C++. Pamiętaj, że znając jeden język następny poznajesz kilkakrotnie szybciej, ponieważ każdy język ma w sobie dużo podobieństw. Także teoretycznie nie ma znaczenia od którego zaczniesz. Java jest językiem wysokiego poziomu (tzn. bardziej zbliżonym do języka ludzkiego; w przeciwieństwie do jezyków niskiego poziomu, czyli bardziej zbliżonych do języka maszynowego) i łatwo przychodzi przyswojenie sobie wiadomości z jej zakresu, także zachęcam Cię do zapoznania się z językiem programowania JAVA.

Aktualnie nie ma żadnych komentarzy
Dodaj własny komentarz:
Treść komentarza:
Nick:















NewsletterRSS - Video Kursy
Zapisz się do Newslettera i bądź na bieżąco z nowościami :-)
Twój e-mail:
*Szanujemy Ciebie i tak samo nie lubimy spamu jak Ty, będziemy informowali Cię tylko o samych nowościach związanych z Video Kursami. W każdym momencie, możesz wypisać się z Newsletera wysyłając do nas e-mail'a. Dla formalności przyciskając button "Zapisuje się*" akceptujesz nasze zasady prywatności.