Java: programovací jazyk – vlastnosti, verze a použití
Objevte Java: vlastnosti, verze (LTS, Java 8/11/14/17) a použití napříč platformami včetně Androidu — průvodce pro vývojáře i začátečníky.
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í.
Galerie obrázků
2 ObrázkyVlastnosti 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ů.
Koncepty jazyka Java
Java byla vyvinuta za účelem dosažení pěti hlavních cílů. Těmito cíli jsou:
- Java by měla být snadno naučitelná, objektově orientovaná a distribuovaná.
- Java by měla být bezpečná a silná.
- Java by neměla být závislá na žádné počítačové architektuře nebo platformě.
- Java by měla fungovat dobře.
- Java by měla mít možnost mít pro ni napsaný interpret, podporovat paralelismus a používat dynamické typování.
Platforma Java
Platforma Java označuje skupinu softwarových produktů společnosti Sun Microsystems. Platforma slouží k vývoji a spouštění programů v jazyce Java. Součástí platformy je spouštěcí jádro (nazývané Java Virtual Machine), které umožňuje programům v jazyce Java provádět stejnou činnost na různých počítačových systémech.
Tato schopnost vyvíjet software na jedné platformě a provozovat jej na jiných platformách se nazývá "multiplatformní schopnost".
Příklad programu v Javě
Příklad programu "Hello World" v jazyce Java:
Typy programů v jazyce Java
Existuje mnoho typů programů v jazyce Java, které se spouštějí různě:
- Java Applet - malý program napsaný v jazyce Java, který je stažen z webové stránky a spuštěn ve webovém prohlížeči na klientském počítači.
- Aplikace - spouští se v klientském počítači. Pokud je online, musí být před spuštěním stažena.
- Soubor JAR (archiv Javy) - slouží k zabalení souborů Javy do jednoho souboru (téměř stejně jako soubor .zip).
- Servlet - běží na webovém serveru a pomáhá generovat webové stránky.
- Aplikace Swing - slouží k vytvoření aplikace s grafickým uživatelským rozhraním (okna, tlačítka, nabídky atd.).
- EJB - běží na webovém serveru a používá se k vývoji velkých a složitých webových stránek.
Výhody
Java se běžně používá při výuce programování pro studenty jako první jazyk, ale stále ji používají i profesionálové.
- Java vyžaduje, aby každá proměnná byla inicializována. Některé starší jazyky, jako například C, umožňují neinicializaci proměnných, což může způsobit náhodné selhání se záhadnými chybami.
- Java vyžaduje, aby každá metoda deklarovala návratový typ - metoda by měla vždy vracet hodnotu, s výjimkou případů, kdy je její návratový typ void. Tím se také předchází chybám.
- Java obsahuje rozsáhlou sadu tříd a metod, Java API, které lze používat, aniž by bylo nutné vyvíjet tolik kódu "od nuly".
- Na rozdíl od jazyka C mají primitivní typy Javy, jako je například int, vždy stejnou velikost co do počtu bitů, což pomáhá dosáhnout kompatibility napříč platformami.
- Java bývala považována za pomalejší než jazyk C, ale to v posledních letech ztrácí na významu, protože počítače jsou rychlejší.
- Java má zpracování výjimek, které vyžaduje, aby programátor zpracovával chybové stavy, jako jsou vstupní/výstupní chyby.
- Kód zkompilovaný na jedné platformě Java lze spustit na jiných platformách, které podporují Javu, aniž by se změnil zdrojový kód nebo bajtový kód. To znamená, že někdo může vytvořit program v jazyce Java pro počítač s operačním systémem Windows a spustit jej na počítači s operačním systémem Linux nebo Mac.
Kritika
Java byla také kritizována. Některé z nich jsou následující:
- Generické kódy byly do Javy přidány tak, aby stávající kód stále běžel. To bylo provedeno pomocí vymazání typů. To znamená, že při kompilaci se odstraní skutečný typ generického argumentu. To může vést k tomu, že se interpret jazyka Java někdy chová neočekávaným způsobem.
- Java nemá celočíselné typy bez znaménka, které jazyky jako C hojně využívají. To také znamená, že není možné přímo vyměňovat číselná data mezi programy v jazycích C a Java. Také kryptografie se do jisté míry spoléhá na tyto typy; to ztěžuje psaní aplikací, které používají kryptografii v Javě.
- IEEE definovala standard pro aritmetiku s pohyblivou řádovou čárkou, IEE 754. Java podporuje pouze část funkcí tohoto standardu.
Otázky a odpovědi
Otázka: Jak se jmenuje programovací jazyk vytvořený společností Sun Microsystems?
Odpověď: Programovací jazyk vytvořený společností Sun Microsystems se nazývá Java.
Otázka: Kdo v současné době podporuje a aktualizuje jazyk Java?
Odpověď: Společnost Oracle Corporation v současné době podporuje a aktualizuje jazyk Java.
Otázka: Jaké jsou aktuální verze Javy s dlouhodobou podporou (LTS)?
Odpověď: Aktuální verze dlouhodobé podpory (LTS) Javy jsou verze 17, 11 a 8.
Otázka: Kdy byla vydána nejnovější verze jazyka Java?
Odpověď: Nejnovější verze jazyka Java, verze 19, byla vydána v září 2022.
Otázka: Existuje kromě společnosti Oracle ještě nějaká jiná společnost, která podporuje jazyk Java?
Odpověď: Ano, společnost Eclipse Adoptium také podporuje jazyk Java, a to nejméně do května 2026 pro verzi 8 a nejméně do září 2027 pro verzi 17.
Otázka: Jaký typ kódu používá Java?
Odpověď: Java používá objektově orientovaný kód, což znamená, že je založena na objektech, které spolupracují, aby programy mohly vykonávat svou práci. Vypadá podobně jako C, C++ nebo C#, ale kód napsaný v těchto jazycích nebude ve většině případů fungovat, aniž by byl změněn.
Otázka: Jak je Java nezávislá na platformě?
Odpověď: Java je nezávislá na platformě tím, že překladač převede kód do speciálního formátu, který se nazývá bajtkód, namísto strojového kódu. To znamená, že při spuštění programu může být bajtový kód interpretován speciálním programem zvaným virtuální stroj, který jej přeloží do strojového kódu, takže může běžet na různých operačních systémech, jako je například Android.
Související články
Autor
AlegsaOnline.com Java: programovací jazyk – vlastnosti, verze a použití Leandro Alegsa
URL: https://cs.alegsaonline.com/art/49636
Zdroje
- codejava.net : "Java SE Versions History"
- upwork.com : "Java vs. C++: Which Language Is Right For Your Software Project?"
- androidauthority.com : "I want to develop Android Apps — What languages should I learn?"
- geeksforgeeks.org : "How is Java platform independent? - GeeksforGeeks"
- java.sun.com : The Java Language Environment. 1.2 Design Goals of the Java Programming Language.
- cs.dartmouth.edu : The Java Language: An Overview.