Java (programovací jazyk)
Java je název programovacího jazyka vytvořeného společností Sun Microsystems. Tato společnost byla odkoupena společností Oracle Corporation, která jej nadále udržuje v aktuálním stavu. Nejnovější verzí je Java 14, která byla vydána v březnu 2020. Kromě toho jsou podporovány pouze tyto verze: nejnovější verze LTS (Long Term Support) Java 11, vydaná 25. září 2018; a společnost Oracle vydala pro "starší" verzi Java 8 LTS poslední bezplatnou "veřejnou aktualizaci". Další plánovanou verzí LTS je Java 17 (LTS), která je plánována na září 2021.
Java, která se v době svého vývoje nazývala Oak, je objektově orientovaná, což znamená, že je založena na objektech, které spolupracují a umožňují programům vykonávat jejich práci. Kód v Javě vypadá jako v jazycích C, C++ nebo C#, ale kód napsaný v těchto jazycích nebude ve většině případů v Javě fungovat, aniž by byl změněn.
Java běží na mnoha různých operačních systémech, včetně Androidu, nejoblíbenějšího mobilního operačního systému na světě (ačkoli se Java na Androidu používá i nadále, dokonce i jeho výrobce Google již Javu nepreferuje; nyní je jeho preferovaným jazykem Kotlin, který lze použít i se všemi kódy v Javě). Díky tomu je Java nezávislá na platformě. Dosahuje toho tím, že kompilátor Javy mění kód na bajtový kód Javy namísto strojového kódu. To znamená, že při spuštění programu virtuální stroj Java interpretuje bajtový kód a překládá jej do strojového kódu.
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.