PC-Solutions Support

ČLÁNEK

Anatomie Javy: Hlubší pohled na JVM, JRE a Bytecode

V úvodním článku jsme si představili Javu jako platformově nezávislý jazyk. Tato nezávislost není magií, ale výsledkem promyšlené architektury, která se skládá ze tří hlavních pilířů: JVM (Java Virtual Machine), JRE (Java Runtime Environment) a Bytecodu.
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ýž .class soubor 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.
Cookies
V souladu s vaším potvrzením používáme cookies soubory, abychom Vám mohli nabídnout co nejvhodnější obsah.

Zpět nahoru