Platforma Java - prehľad
Základy informatiky - jazyk Java
Úvod do programovania v jazyku Java
Java - objektovo orientovaný prístup
Vzorové príklady:
Java - implementácia numerických algoritmov
Java - triedy geometrických tvarov
Pokročilé témy:
Čo je Java
Java je objektovo orientovaný jazyk, ktorý vychádza z jazykov C a C++. Na rozdiel od svojich predchodcov však neobsahuje niektoré konštrukcie spôsobujúce pri programovaní najväčšie problémy a naopak pridáva viacero zaujímavých vlastností:
- V Jave neexistuje priamy a nekontrolovaný prístup do pamäte - ukazovatele sú nahradené referenčnými premennými, dátové typy sú pevne definované, vykonáva sa kontrola pri indexácii polí, zabraňuje sa prístupu ku zrušeným objektom.
- Syntax je jednoduchšia a zrozumiteľnejšia - Java neobsahuje preprocesor (t.j. žiadne makrá ani direktívy), nie je povolené preťažovanie operátorov, je zavedený jednotný zápis pre prístup k objektom i knižniciam.
- Java disponuje silnou statickou typovou kontrolou. Aritmetika je definovaná podľa normy IEEE, čo zaručuje rovnaký výsledok na rozdielnych systémoch. Abecedy neanglických jazykov sú podporované pomocou šestnásťbitového znakového kódu Unicode.
- Prostredníctvom výnimiek možno zachytiť chyby a neočakávané stavy vyskytujúce sa za behu programu a umožniť jeho zotavenie.
- Jazyk zahŕňa prostriedky pre paralelný beh častí programu (multithreading) a ich synchronizáciu.
- Java podporuje vytváranie dynamických a distribuovaných aplikácií aj ich automatické šírenie po sieti. Aj za behu aplikácie možno zabezpečiť upgrade softvéru.
- Bezpečnosť aplikácií možno strážiť programovú kontrolou prístupu k objektom, vlastný kód programu je pred spustením verifikovaný, podporované sú šifrovacie štandardy atď.
Zaujímavosti:
- java je slangový výraz pre kávu. Odtiaľ je aj prvé logo Javy.
- maskotom Javy je Duke
Java Platforma
Najväčším prínosom Javy je nepochybne plná prenositeľnosť programov na ľubovoľnú platformu bez nutnosti ich rekompilácie. Programy sa totiž neprekladajú do strojového kódu konkrétneho procesora, ale do nezávislého podoby, tzv. bytového kódu (bytecode). Tento kód potom môže byť interpretovaný na akomkoľvek počítači alebo priemyselnom zariadení. Kompatibilita je teda zabezpečená na binárnej úrovni.
Hardvérové rozdiely zastrešuje tzv Java Platforma, ktorá obsahuje dve základné časti:
- Abstraktný počítač - virtuálny stroj (Java Virtual Machine - JVM[1]), ktorý pozostáva z runtime systému, čo je časť, ktorá realizujúce väzbu na hardvér, a interpretra, ktorý vykonáva bytový kód.
- Pre urýchlenie môže byť interpret voliteľne nahradený tzv JIT (Just-In-Time) kompilátorom, ktorý pri behu programu vykonáva najprv preklad do strojového kódu príslušného procesora.
- Aplikačné programové rozhranie (Java Core API) - čo sú základné knižnice pre písanie programov. Výhodou je, že tieto knižnice nemusia byť s programom distribuované, pretože sú súčasťou Java platformy.
V súčasnej dobe prebieha návrh niekoľkých rozširujúcich programových rozhraní. Ide napríklad o podporu 2D a 3D grafiky (Java 2D a 3D API), zvuk (Java Audio API), správu siete (Java Management API), bezpečnosť (Java Security API) atď.
Zaujímavosť: Ak si pozriete v hexadecimálnom editore ľubovoľný súbor .class, čo je vlastne preložený kód java do bytekódu, tak prvé 4 bajty (hlavička súboru) sú vždy CAFE.
Verzie a edície Java
Platforma Java je založená na virtuálnom stroji (JVM), ktorý je implementovaný pomocou knižníc v operačnom systéme. Existujú 2 základné verzie Java platformy:
- Java Runtime Enviroment - JRE. JRE je nutné na spúšťanie java programov. JRE obsahuje:
- Virtuálny stroj (spúšťaný príkazom java)
- Sadu základných knižníc (Java Core API)
- Java Development - JDK. JDK je nutné pre vývoj java programov. JDK obsahuje:
- java - nakladač pre Java aplikácie. Tento nástroj interpretuje class súbory vytvorené javac kompilátorom.
- javac (java compilator) - prekladač ktorý prevádza zdrojový kód do Java bytecode
- jar - archívátor, ktorý vytvorí balík skladajúci sa z preloženého Java zdrojového kódu a súvisiacich knižníc.
- javadoc - generátor dokumentácie, ktorý automaticky generuje dokumentáciu z komentárov zdrojového kódu
- jdb - debugger
- ďalšie....
Java platforma sa ďalej rozdeľuje na edície, podľa toho, aké knižnice obsahuje.
- Java SE [2]
- Java Standard Edition (J2SE) - Základná platforma pre aplikácie napísané v jazyku Java. Jej využitie je pre tvorbu desktopových aplikácií. J2SE obsahuje základné knižnice ako napríklad java.lang, java.io, java.nio, java.math, java.net, java.text, java.util, java.applet, java.beans, java.awt a ďalšie.
- Java EE [3]
- Java Enterprise Edition je platforma využívaná pre serverové riešenia. Oproti J2SE obsahuje naviac knižnice pre vývoj bezporuchových, distribuovaných, viac-vrstvových aplikácií bežiacich na aplikačnom serveri.
- Java EE dopĺňa knižnice platformy J2SE o nasledujúce: javax.ejb, javax.enterprise.inject, javax.enterprise.context, javax.jms, javax.faces, javax.faces.component, javax.persistence, javax.xml.stream, javax.resource, ...
- Java ME [4], [5]
- Java Micro Edition (J2ME) je platforma navrhnutá pre mobilné zariadenia a vložené (embedded) systémy. Pretože možnosti a výkon mobilných zariadení sa veľmi líšia J2ME definuje konfigurácie a profily pre bližšiu špecifikáciu JRE. Konfigurácia definuje základné behové prostredie (JRE) ako základnú množinu tried a špecifického virtuálneho stroja (JVM), ktorý je schopný bežať na špecifickom zariadení.
- Java FX [6]
- Java FX je platforma pre vytváranie aplikácií v prostredí internetu, ktoré sú schopné bežať na rôznych zariadeniach (PC, hracie konzoly, set-top boxy, Blue-ray prehrávače, ...)
Odkazy
- ↑ http://cs.wikipedia.org/wiki/Java_Virtual_Machine
- ↑ Java SE - http://en.wikipedia.org/wiki/Java_Platform,_Standard_Edition
- ↑ Java EE - http://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition
- ↑ Java ME - http://en.wikipedia.org/wiki/Java_Platform,_Micro_Edition
- ↑ Java ME - http://www.stevengould.org/portfolio/developerWorks/j2me/j2metutorial/j-j2me/j-j2me-2-1.html
- ↑ Java FX http://javafx.com