JVM znamená Java Virtual Machine, čo je dôležitá súčasť platformy Java. JVM je softvérové prostredie, ktoré umožňuje spúšťanie programov napísaných v jazyku Java (a niektorých ďalších jazykoch) nezávisle od konkrétneho hardvéru a operačného systému.
Hlavné funkcie JVM:
1.Preklad bytekódu na natívny kód:
•Kód napísaný v Jave sa kompiluje do medziformátu nazývaného bytecode.
•JVM tento bytecode prekladá na strojový kód, ktorý je špecifický pre operačný systém a hardvér.
2.Izolácia a bezpečnosť:
•JVM poskytuje izolované prostredie pre spúšťanie programov, čo zvyšuje bezpečnosť.
•Zabraňuje priamemu prístupu programov k pamäti, čím chráni systém pred potenciálnymi útokmi alebo chybami.
3.Správa pamäte:
•JVM má zabudovaný garbage collector, ktorý automaticky spravuje uvoľňovanie nepoužívanej pamäte, čo minimalizuje riziko pamäťových únikov.
4.Prenosnosť (Write Once, Run Anywhere):
•Programy napísané v Jave môžu byť spustené na ľubovoľnom zariadení s nainštalovanou JVM bez potreby prepisovania kódu.
Komponenty JVM:
1.Class Loader:
•Načíta Java triedy do pamäte a pripraví ich na spúšťanie.
2.Execution Engine:
•Spúšťa kód pomocou interpretácie alebo kompilácie cez Just-In-Time (JIT) Compiler.
3.Garbage Collector:
•Spravuje pamäť a automaticky odstraňuje objekty, ktoré už nie sú používané.
4.Java Native Interface (JNI):
•Umožňuje JVM komunikovať s natívnymi knižnicami a funkciami napísanými v iných jazykoch, ako napríklad C alebo C++.
Ako JVM funguje:
1.Zdrojový kód napísaný v Jave (súbor .java) sa kompiluje do bytekódu (.class) pomocou Java kompilátora.
2.JVM načíta tento bytekód, analyzuje ho a vykonáva jeho inštrukcie na cieľovej platforme.
Dôležité vlastnosti:
•Nezávislosť na platforme: Program môže bežať na rôznych operačných systémoch (Windows, macOS, Linux) za predpokladu, že majú JVM.
•Podpora viacerých jazykov: JVM podporuje aj iné jazyky ako Kotlin, Scala, Groovy, ktoré sa kompilujú do bytekódu.
•Výkon: S modernými technikami, ako je JIT kompilácia, JVM dosahuje vysoký výkon, často porovnateľný s natívnymi aplikáciami.
Praktické použitie JVM:
•Používa sa na spúšťanie Java aplikácií na serveroch, desktopoch, a dokonca aj na mobilných zariadeniach (napr. cez Android Dalvik/ART).
•Slúži ako základ pre množstvo frameworkov a technológií (Spring, Hibernate, Apache Spark).
JVM je kľúčovou súčasťou ekosystému Java a umožňuje prenosnosť, výkonnosť a bezpečnosť Java aplikácií.