Pojďme se podívat na to, jak tyto komponenty spolupracují a co přesně dělají.
1. Bytecode: Univerzální jazyk pro JVM
Když napíšete program v jazyce Java (soubor s příponou
.java),
nemůže ho procesor vašeho počítače (CPU) spustit přímo, jako je tomu u
jiných jazyků, například C++. Místo toho je váš zdrojový kód nejprve zkompilován do instrukční sady nazývané bytecode. - Co je bytecode? Jde o instrukce optimalizované pro virtuální stroj (JVM), uložené v souboru s příponou
.class. Je to jakýsi "mezijazyk", který je pro všechny operační systémy stejný. Díky tomu je dosaženo slavného principu Javy: "Napiš jednou, spusť kdekoli" (Write Once, Run Anywhere – WORA).
2. JVM (Java Virtual Machine): Srdce Javy
JVM
je softwarový motor, který vytváří běhové prostředí pro spouštění Java
aplikací. Je to ona "virtuální mašina", která překládá univerzální
bytecode do nativního (strojového) kódu, kterému rozumí konkrétní
operační systém a hardware vašeho počítače.
- Platformová závislost: Ačkoliv je Java kód (bytecode) nezávislý na platformě, samotná JVM závisí
na operačním systému. Existuje tedy jiná implementace JVM pro Windows,
jiná pro macOS a jiná pro Linux. Právě to umožňuje, aby tentýž
.classsoubor běžel všude. - Správa paměti: JVM se stará o automatickou správu paměti prostřednictvím tzv. Garbage Collectoru (GC), který automaticky uvolňuje paměť, kterou již program nepotřebuje, a předchází tak únikům paměti (memory leaks).
3. JRE (Java Runtime Environment): Běhové prostředí
JRE je balíček softwaru, který obsahuje vše potřebné k pouhému spuštění existujícího Java programu. Skládá se z:
- JVM (která kód spouští).
- Sady knihoven a zdrojů (základní třídy, binární soubory), které aplikace potřebuje ke svému běhu.
Pokud
jste koncový uživatel a chcete pouze spustit nějakou Java aplikaci
(např. starší hru nebo firemní software), stačí vám nainstalovat JRE
(dnes často již integrované v moderním JDK).
4. JDK (Java Development Kit): Kompletní sada nástrojů
JDK je kompletní vývojová sada pro programátory. Obsahuje vše, co je v JRE, plus vývojové nástroje, jako jsou:
javac: Java kompilátor, který převádí zdrojový kód (.java) na bytecode (.class).- Debugger, profiler a další nástroje pro ladění a optimalizaci.
JDK (vývoj) obsahuje JRE (spouštění), které obsahuje JVM (překlad a výkon) a základní knihovny.
Pochopení
této hierarchie je zásadní pro každého, kdo chce v Javě nejen
programovat, ale i efektivně řešit problémy se spouštěním nebo výkonem
aplikací. Nyní, když znáte teorii, jste připraveni v dalším článku
nainstalovat JDK a napsat svůj první kód.
