Kompilátor v podstatě překládá kód, který napíšeš, do tajemného jazyka, který počítač dobře chápe. Je to jako překládání knihy do jiného jazyka, aby ji mohl počítač číst.
Představ si, že napíšeš příběh (zdrojový kód) v angličtině, ale počítač rozumí pouze jazyku čísel a zvláštních příkazů (bytecode). Kompilátor je jakoby překladatel, který vezme tvůj příběh v angličtině a přeloží jej na sérii čísel a příkazů, které počítač může pochopit.
Kompilátor v jazyce Java je nástroj, který překládá srozumitelný kód napsaný programátorem do formy, kterou počítač dokáže lépe pochopit a provádět. V případě Javy se kód kompiluje do něčeho zvaného „bytecode“. Tady je jednoduchý způsob, jak to funguje:
Programátor píše zdrojový kód v jazyce Java. Tento kód obsahuje instrukce a logiku, kterou chce, aby počítač provedl.
Poté programátor spustí kompilátor, který přeloží (kompiluje) tento zdrojový kód do bytecode. Bytecode je složen z nízkoúrovňových instrukcí a struktur, které jsou blízké jazyku počítače, ale není to ještě přímo spustitelný kód pro konkrétní hardware.
Bytecode je jakýmsi "mezistupněm" mezi zdrojovým kódem a konečným spustitelným kódem. Obsahuje instrukce a údaje ve specifickém formátu, který může být zpracován virtuálním strojem Javy (JVM - Java Virtual Machine).
JVM funguje jako překladač mezi zdrojovým kódem v jazyce Java a konkrétním hardwarem nebo operačním systémem. To znamená, že kód napsaný v Javě může být zkompilován do bytecodu a tento bytecode může být interpretován a prováděn JVM na jakémkoli zařízení, které podporuje Java platformu.
Celkově řečeno, JVM umožňuje programátorům psát kód v jazyce Java a mít jistotu, že jejich aplikace bude přenositelná a spustitelná na různých platformách, což výrazně zjednodušuje vývoj a distribuci softwaru.
Při spuštění programu se aktivuje Java Virtual Machine. JVM je softwarová komponenta, která simuluje fyzický počítač a interpretuje bytecode. JVM překládá bytecode na instrukce pochopitelné pro konkrétní hardware, na kterém program běží.
JVM provádí instrukce bytecode podle toho, co je napsáno ve zdrojovém kódu. To znamená, že kód, který programátor napsal, se stává aktivním a provádí se na JVM. JVM řídí správu paměti, řídí běh programu a zajišťuje jeho správné fungování.
Výsledkem tohoto procesu je, že programátor může napsat kód v jazyce Java, který je nezávislý na konkrétním hardwaru nebo operačním systému. Bytecode a JVM umožňují spouštět tento kód na různých počítačích a zařízeních, která podporují Java platformu, což znamená, že Java aplikace jsou přenositelné a víceuniverzální.