Java je název programovacího jazyka původně vytvořeného společností Sun Microsystems. Tato společnost byla později odkoupena společností Oracle Corporation, která nyní jazyk a jeho reference implementaci nadále vyvíjí a spravuje. Java má pravidelný šestiměsíční model vydávání nových verzí a současně vychází i vybrané verze s dlouhodobou podporou (LTS). Mezi důležité LTS verze patří Java 8, Java 11 a Java 17; v posledních letech byla vydána i novější LTS verze Java 21 (vydaná září 2023). Pro komerční nasazení a aktualizace se často rozlišuje mezi Oracle JDK a OpenJDK buildy — OpenJDK je volně dostupná referenční implementace, zatímco Oracle JDK může mít od verze 11 odlišné licenční podmínky a komerční nabídky podpory. Java 8 obdržela od Oracle dlouhodobou veřejnou podporu, ale pro některé starší verze již veřejné bezplatné aktualizace nejsou poskytovány; proto mnoho organizací přechází na novější LTS vydání nebo použití OpenJDK distribucí.
Vlastnosti jazyka
Java byla během vývoje pojmenována Oak a je navržena jako objektově orientovaná — to znamená, že programy jsou organizovány kolem objektů, které obsahují stav (data) a chování (metody). Syntaxe Javy se vzhledem připomíná jazykům jako C, C++ nebo C#, takže vývojáři těchto jazyků obvykle snadno přejdou k Javě. Nicméně kód napsaný v C nebo C++ obvykle v Javě bez úprav nefunguje — Java má vlastní typový systém, správu paměti a běhové prostředí.
- Platformová nezávislost: Java dosahuje principu "write once, run anywhere" tím, že kód se překládá do platformově nezávislého bytecode, který spouští Java Virtual Machine (JVM).
- Automatická správa paměti: vestavěný garbage collector uvolňuje nepoužívané objekty, což snižuje riziko paměťových úniků v porovnání s ruční správou paměti.
- Silné typování: statické typování pomáhá odhalit chyby v době kompilace.
- Bohatá standardní knihovna: rozsáhlé API pro práci se vstupem/výstupem, kolekcemi, vláknováním, sítí, bezpečností, XML/JSON, databázemi a dalšími oblastmi.
- Bezpečnost a správa oprávnění: JVM umožňuje spouštění kódu v sandboxu s řízenými oprávněními, což bylo důležité zejména v počátcích (aplikace a appletů).
Verze, LTS a vydávací model
Od Javy 9 byla zavedena modulární architektura (JPMS), která umožňuje rozdělit aplikaci a JDK na malé, znovupoužitelné moduly. Oracle i komunita OpenJDK udržují šestiměsíční cyklus vydávání nových funkcí, přičemž každé několikáté vydání je označeno jako LTS (Long Term Support) a obvykle dostává delší dobu podpory. Mezi nejpoužívanější LTS patří Java 8, Java 11 a Java 17; Java 21 je novější LTS vydání, které přineslo další zlepšení výkonu a nástrojů. Vývojáři a firmy si volí mezi rychlým přístupem k novým funkcím (každých 6 měsíců) a stabilitou LTS vydání pro produkční provoz.
Jak Java funguje
Proces typického vývoje v Javě probíhá takto: zdrojový kód (.java) kompilátor překládá do meziformátu zvaného bajtový kód (.class). Tento bajtový kód spouští JVM — například HotSpot nebo jiné implementace — která provádí interpretaci a/nebo just-in-time (JIT) kompilaci do nativního strojového kódu během běhu programu. Díky tomu je možné přenášet stejné .class soubory mezi platformami, na kterých běží kompatibilní JVM. Kompilátor i JVM společně zajišťují optimalizace výkonu, jako je JIT kompilace a adaptivní optimalizace běhu.
Pro mobilní prostředí, zejména na Androidu, se tradičně používaly Java nástroje a jazykové konstrukce, avšak Android runtime používá vlastní runtime systémy (Dalvik, později ART) a vlastní formát (DEX). Google dnes preferuje jazyk Kotlin pro vývoj Android aplikací, protože nabízí modernější jazykové konstrukce, přičemž Kotlin plně interoperuje s existujícím kódem v Javě. Přesto zůstává velké množství knihoven a nástrojů pro Android napsaných v Javě.
Použití Javy
Java se široce používá v různých oblastech:
- serverové aplikace a podnikové systémy (backend, mikroslužby),
- webové aplikace (servlety, frameworky jako Spring),
- mobilní aplikace pro Android (často ve spojení s Kotlinem),
- desktopové aplikace (Swing, JavaFX),
- big data a analytika (Hadoop, Spark - části ekosystému běží na JVM),
- vestavěné systémy a IoT řešení (kde výkon a footprint dovolí použití JVM).
Nástroje, ekosystém a kompatibilita
Ekosystém Javy zahrnuje mnoho nástrojů a frameworků: build nástroje jako Maven a Gradle, testovací frameworky (JUnit), servery aplikací, ORM řešení (Hibernate) a množství knihoven pro různá použití. Java klade důraz na zpětnou kompatibilitu — kód napsaný pro starší verze obvykle funguje i na novějších JRE/JVM verzích, což je důležitý benefit pro velké projekty.
Bezpečnost a licence
Bezpečnost Javy zahrnuje jak jazykové prvky (typová kontrola, omezení přístupu), tak bezpečnostní model JVM a pravidelné bezpečnostní aktualizace. Co se licencí týče, OpenJDK je licencováno pod GPL s výjimkou Classpath Exception a slouží jako referenční open-source implementace. Oracle nabízí svůj JDK s komerční podporou — pro některé verze a komerční použití mohou platit jiné licenční podmínky, proto je potřeba zkontrolovat konkrétní smluvní podmínky při nasazení do produkce.
Java je stabilní, rozsáhlý a průmyslově prověřený jazyk s bohatým ekosystémem nástrojů a knihoven. Díky kombinaci výkonu, přenositelnosti a velké komunity zůstává jedním z nejpoužívanějších jazyků pro vývoj velkých podnikových i veřejných systémů.