Java (platforma)
Platforma Java je sada několika produktů počítačového softwaru a specifikací společnosti Sun Microsystems (od doby co se spojila s Oracle Corporation). Společně poskytují systém pro vývoj aplikačního softwaru a vyvíjejí ji jako multiplatformní software. Java se používá v širokém spektru počítačových platforem od vestavěných systémů a mobilních telefonů, až po podnikové servery a superpočítače na vysoké úrovni. I když je to méně časté, jsou Java applety někdy používány k lepší a bezpečnější funkcí při prohlížení Webu na klasických počítačích.
Psaní v programovacím jazyce Java je hlavní cesta, jak získat Java bytecode. Existují však, byt kódové překladače, které jsou k dispozici i pro jiné jazyky jako jsou Ada, JavaScript, Python nebo Ruby. Několik nových jazyků jako je Scala, Clojure a Groovy, bylo navrženo i pro nativní provoz na Java Virtual Machine (dále JVM). Java syntaxe je podobná jako u programovacího jazyka C a C++, ovšem objektově orientované rysy jsou odvozené podle objektově založených jazyků Smalltalk a Objective-C.[1] Java odstraňuje některé nízkoúrovňové konstrukce, jako jsou ukazatelé a má velmi jednoduchý model paměti, kde je každý objekt alokován v haldě (ta je součásti ve správě paměti), a kde všechny proměnné objektových typů jsou vlastně reference. Správa paměti je řešena pomocí integrovaného automatického Garbage collectoru prováděného JVM.
Dne 13. listopadu 2006, firma Sun Microsystems zveřejnila většinu své implementace Javy, která je dostupná pod GNU General Public License (GPL).[2][3]
Platform Java
Java platform je název pro soubor programů od Sun Microsystems, které umožňují vývoj a spouštění programů napsaných v programovacím jazyce Java. Tato platforma není specifická jen pro jeden procesor nebo operační systém, ale kompilátor se sadou knihoven je realizovány pro různý hardware a různé operační systémy tak, aby programy v jazyce Java mohly běžet nezávisle na platformě. Tohoto výsledku dosahuje pomocí virtualizace.
- JavaCard – pro aplikace provozované v rámci tzv. „chytrých“ karet (např. platební a kreditní karty atp.),
- Java ME – pro aplikace provozované na mobilních zařízeních (mobilní telefony, PDA, atp.),
- Java SE – aplikace provozované na stolních počítačích,
- Java EE – aplikace pro podnikové a rozsáhlé informační systémy.
Java se skládá z několika dílčích programů a každý z nich má pak zásadní vliv na celkové vlastnosti. Například: Java kompilátor (compiler), který převádí zdrojový kód Javy do bajtového kódu Javy (přechodový kód pro JVM) a je k dispozici jako součást JDK (Java Development Kitu), Java Runtime Environment (běhové prostředí Javy), doplňuje JVM o just-in-time kompilátor, který převádí přechodný byte code Javy do nativního kódu a to přímo za běhu programu, součástí platformy Java je také rozsáhlá sada knihoven.
Jednotlivé dílčí platformy sdílejí společné koncepty, kterými jsou:
- syntaxe jazyka Java,
- virtuální stroj Javy – Java Virtual Machine (JVM),
- obdobné API standardních knihoven funkcí.
Java Virtual Machine
- Hlavní článek: Java Virtual Machine
Java Virtual Machine, je hlavní součásti platformy JAVA a vykonává samotný Java bajt kód aplikace. Tento bytový kód je stejný bez ohledu na to, na jakém hardwaru nebo operačním systému je samotný program spuštěn. Součástí JVM, je i kompilátor Just-In-Time (JIT) „právě v čas“, který ukládá nativní kód v paměti při spuštění a hlavně za běhu programu překládá Java bytový kód do nativních procesorových instrukcí.
Použití bajtového kódu jako zprostředkující jazyka umožňuje Java programu spustit se na libovolné platformě, která má pomocí funkce virtualizace podporu virtuálního stroje. Použití kompilátoru Just-In-Time způsobí většinou programu krátkou prodlevu při načítání, ale poté programy v Javě běží téměř rychle jako nativní programy. Toto opoždění je někdy nazváno jako startup delay a obecně platí, že čím více optimalizace JIT provádí, tím lepší kód vygeneruje, ale tím se úměrně zvětší počáteční zpoždění. Proto JIT kompilátor musí dělat kompromis mezi dobou potřebnou pro optimalizaci překladu a kvalitou kódu, který má vygenerovat. Ačkoli Java programy fungují napříč různými platformami (jsou platformě nezávislé), kód Java Virtual Machines (JVM), který tyto programy provádí, tuto vlastnost postrádá, každý podporovaný operační platforma tedy musí mýt svůj vlastní JVM.
Knihovny
Ve většině moderních operačních systémů, je velká skupina opakovaně se používaného kódu v jednotlivých programech soustředěna do dynamických knihoven, ve snaze zjednodušit práci programátora je tento kód pak zpravidla poskytován jako služba, kterou aplikace může volat. Vzhledem k tomu, že platforma Java není závislá na konkrétním operačním systému, se aplikace nemůže spoléhat na žádnou z již existujících knihoven OS. Místo toho, platforma Java poskytuje sadu vlastních komplexní standardních tříd knihoven, které obsahují mnoho stejných funkcí jako běžně se vyskytující dynamické knihovny v moderních OS. Většina systémových knihoven je také napsána v Javě. Například, knihovna Swing sama vykresluje uživatelské rozhraní a zpracovává události, což eliminuje mnoho jemných rozdílů mezi různými platformami.
Reference
- ↑ NAUGHTON, Patrick. Java Was Strongly Influenced by Objective-C [online]. Dostupné online.
- ↑ Sun Opens Java [online]. Sun Microsystems, 13 November 2006. Dostupné v archivu pořízeném z originálu dne 2008-05-13.
- ↑ Kelly O'Hair. OpenJDK7 and OpenJDK6 Binary Plugs Logic Removed [online]. Oracle Corporation, December 2010 [cit. 2011-11-25]. Dostupné online.