JDK vs JRE vs JVM: Klíčové rozdíly
Co je JDK?
JDK je vývojové prostředí softwaru používané k výrobě appletů a aplikací Java. Plnou formou JDK je Java Development Kit. Vývojáři prostředí Java jej mohou používat v systémech Windows, macOS, Solaris a Linux. JDK jim pomáhá kódovat a spouštět programy Java. Na stejný počítač je možné nainstalovat více než jednu verzi JDK.
V tomto výukovém programu se naučíte:
- Co je JDK?
- Co je JRE?
- Co je JVM?
- Proč používat JDK?
- Proč používat JRE?
- Proč JVM?
- Vlastnosti JDK
- Vlastnosti JRE
- Vlastnosti JVM
- Jak JDK funguje?
- Jak JRE funguje?
- Jak JVM funguje?
- Rozdíl mezi JDK, JRE a JVM
Co je JRE?
JRE je software, který je určen pro provozování jiného softwaru . Obsahuje knihovny tříd, třídu zavaděče a JVM. Jednoduše řečeno, pokud chcete spustit program Java, potřebujete JRE. Pokud nejste programátor, nemusíte instalovat JDK, ale ke spouštění programů Java stačí JRE. Všechny verze JDK jsou však dodávány s prostředím Java Runtime Environment, takže není nutné stahovat a instalovat JRE samostatně do vašeho PC. Plnou formou JRE je prostředí Java Runtime Environment.
Co je JVM?
JVM je stroj, který poskytuje běhové prostředí pro řízení Java kódu nebo aplikací. Převádí bajtový kód Java do strojového jazyka. JVM je součástí prostředí Java Run Environment (JRE). Nelze jej samostatně stáhnout a nainstalovat. Chcete-li nainstalovat JVM, musíte nainstalovat JRE. plnou formou JVM je Java Virtual Machine.
V mnoha jiných programovacích jazycích kompilátor vytváří strojový kód pro konkrétní systém. Kompilátor Java však produkuje kód pro virtuální stroj, který se nazývá JVM.
KLÍČOVÉ ROZDÍLY
- JDK je sada pro vývoj softwaru, zatímco JRE je balíček softwaru, který umožňuje spuštění programu Java, vzhledem k tomu, že JVM je prostředí pro provádění bytecode.
- Plnou formou JDK je Java Development Kit, zatímco plnou formou JRE je Java Runtime Environment, zatímco plnou formou JVM je Java Virtual Machine.
- JDK je závislé na platformě, JRE je také závislé na platformě, ale JVM je nezávislé na platformě.
- JDK obsahuje nástroje pro vývoj, ladění atd. JRE obsahuje třídní knihovny a další podpůrné soubory, zatímco software vývojové nástroje nejsou součástí JVM.
- JDK je dodáván s instalačním programem, na druhé straně JRE obsahuje pouze prostředí pro provádění zdrojového kódu, zatímco JVM je dodáván v softwarovém JDK i JRE.
Proč používat JDK?
Zde jsou důležité důvody použití JDK:
- JDK obsahuje nástroje potřebné k psaní programů Java a JRE je provést.
- Zahrnuje překladač, spouštěč aplikací Java, Appletviewer atd.
- Překladač převádí kód napsaný v jazyce Java na bajtový kód.
- Spouštěč aplikací Java otevře JRE, načte potřebnou třídu a provede její hlavní metodu.
Proč používat JRE?
Zde jsou důležité důvody použití JRE:
- JRE obsahuje knihovny tříd, JVM a další podpůrné soubory. Neobsahuje žádný nástroj pro vývoj Java, jako je debugger, kompilátor atd.
- Používá důležité třídy balíčků, jako jsou matematické, swingetc, util, lang, awt a runtime knihovny.
- Pokud musíte spustit applety Java, musí být ve vašem systému nainstalováno JRE.
Proč JVM?
Zde jsou důležité důvody použití JVM:
- JVM poskytuje způsob provádění Javy nezávislý na platformě zdrojový kód.
- Má četné knihovny, nástroje a rámce.
- Jakmile spustíte program Java, můžete běžet na libovolné platformě a ušetřit spoustu času.
- JVM je dodáván s kompilátorem JIT (Just-in-Time), který převádí zdrojový kód Java do strojového jazyka nízké úrovně. Proto běží rychleji než běžná aplikace.
Vlastnosti JDK
Zde jsou důležité funkce JDK:
- Umožňuje vám zpracovat více rozšíření v jednom bloku zachycení.
- JDK zahrnuje všechny funkce, které JRE má.
- Obsahuje vývojové nástroje, jako je kompilátor, debugger atd.
- JDK poskytuje prostředí pro vývoj a provádění zdrojového kódu Java.
- Lze jej nainstalovat do operačních systémů Windows, Unix a Mac.
- Diamantový operátor lze použít k určení rozhraní obecného typu namísto psaní přesného.
Vlastnosti prostředí JRE
Zde jsou důležité vlastnosti prostředí JRE:
- Prostředí Java Runtime Environment je sada nástrojů, pomocí kterých JVM skutečně běží.
- JRE obsahuje technologii nasazení, včetně Java Web Start a Java Plug-in.
- Vývojáři mohou snadno spustit zdrojový kód v JRE, ale on nemůže psát a kompilovat program Java.
- Zahrnuje integrační knihovny jako Java Database Connectivity (JDBC), Remote Method Invocation (RMI), Java Naming and Directory Interface (JNDI) a další.
- JRE má klienta virtuálního stroje JVM a Java HotSpot.
Funkce JVM
Zde jsou důležité funkce JVM:
- Umožňuje vám spouštět aplikace v cloudovém prostředí nebo ve vašem zařízení.
- Java Virtual Machine převádí bajtový kód na strojově specifický kód.
- Poskytuje základní funkce Java, jako je správa paměti, zabezpečení, odvoz odpadu a další.
- JVM spouští program pomocí knihoven a souborů poskytovaných prostředím Java Runtime Environment.
- JDK i JRE obsahují Java Virtual Machine.
- Může provádět program java po řádcích, proto se také nazývá interpret.
- JVM lze snadno přizpůsobit, například můžete jí přidělit minimální a maximální paměť.
- Je nezávislá na hardwaru a operačním systému. Program Java tedy můžete napsat jednou a spustit kdekoli.
Jak JDK funguje?
Zde jsou důležité součásti JDK:
- JDK a JRE: JDK umožňuje programátorům vytvářet základní programy Java, které mohou být spuštěny JRE, který zahrnoval JVM a třídní knihovny.
- Knihovny tříd: Je to skupina dynamicky načítatelných knihoven, které program Java může volat za běhu.
- Kompilátory: Jedná se o program Java, který přijímá textový soubor vývojářů a kompiluje do Soubor třídy Java. Je to běžná forma výstupu daná kompilátorem, který obsahuje bajtový kód Java. V Javě je primárním překladačem Javac.
- Debuggers: Debugger je program Java, který umožňuje vývojářům testovat a ladit programy Java.
- JavaDoc: JavaDoc je dokumentace vytvořená společností Sun Microsystems pro prostředí Java. JavaDoc lze použít pro generování dokumentace API v souboru HTML ze zdrojového programu
Jak funguje JRE Functions?
JRE má instanci JVM, knihovní třídy a vývojové nástroje. Jakmile napíšete a zkompilujete kód Java, kompilátor vygeneruje soubor třídy s bajtovým kódem.
Zde jsou důležité komponenty JRE:
- Zavaděče tříd: Zavaděč tříd načítá různé třídy, které jsou nezbytné pro spuštění programu Java. JVM používá tři zavaděče tříd, které se nazývají zavaděč třídy bootstrap, zavaděč tříd rozšíření a zavaděč tříd systému.
- Ověřovač kódu bytu: Ověřovač kódu bytu ověřuje bytecode tak, aby kód nerušil tlumočníka.
- Tlumočník: Jakmile se třídy načtou a kód se ověří, tlumočník přečte kód po řádku.
- Run-time: Run-time je systém používaný hlavně při programování popište časové období, během kterého je konkrétní program spuštěn.
- Hardware: Jakmile kompilujete nativní kód Java, běží na konkrétní hardwarové platformě.
Tímto způsobem program Java běží v JRE.
Jak JVM funguje?
Zde jsou důležité součásti JVM:
1) Class Loader
Class loader je subsystém používaný pro načítání souborů tříd. Vykonává tři hlavní funkce, viz. Načítání, propojení a inicializace.
2) Oblast metod
Oblast metod JVM ukládá strukturu třídy, jako jsou metadata, kód pro metody Java a stálý běhový fond.
3) Halda
Všechny objekty, pole a proměnné instance jsou uloženy v hromadě. Tato paměť je sdílena napříč více vlákny.
4) Zásobníky jazyka JVM
Zásobníky jazyka Java ukládají místní proměnné a jejich dílčí výsledky. Každé vlákno má svůj vlastní zásobník jazyků JVM, vytvořený současně s vytvořením vlákna. Při vyvolání metody se vytvoří nový rámec a po dokončení procesu vyvolání metody se odebere.
5) Registry PC
Registry PC ukládají adresu aktuálně prováděné instrukce virtuálního stroje Java. V Javě má každé vlákno svůj samostatný registr PC.
6) Zásobníky nativní metody
Zásobníky nativní metody obsahují instrukce nativního kódu, která závisí na nativní knihovně. Přiděluje paměť na nativní hromady nebo používá jakýkoli typ zásobníku.
7) Execution Engine
Jedná se o typ softwaru, který se používá k testování softwaru, hardwaru nebo kompletních systémů. Stroj pro provádění testu nikdy nenese žádné informace o testovaném produktu.
8) Rozhraní nativní metody
Rozhraní nativní metody je programovací rámec. Umožňuje kódu Java, který běží v JVM, volat z knihoven a nativních aplikací.
9) Nativní metody knihoven
Nativní knihovny jsou kolekcí nativních knihoven (C, C ++), které Execution Engine potřebuje.
Rozdíl mezi JDK, JRE a JVM
Zde jsou hlavní rozdíly mezi JDK vs. JRE vs. JVM:
JDK | JRE | JVM |
Plnou formou JDK je Java Development Kit. | Plnou formou JRE je prostředí Java Runtime Environment. | Plnou formou JVM je Java Virtual Machine. |
JDK je sada pro vývoj softwaru pro vývoj aplikací v Javě. | Jedná se o softwarový balíček, který poskytuje knihovnám tříd Java potřebné komponenty pro spuštění kódu Java. | JVM provádí bajtový kód Java a poskytuje prostředí pro jeho provádění. |
JDK závisí na platformě. | JRE je také závislé na platformě. | JVM je nezávislý na platformě. |
Obsahuje nástroje pro vývoj, ladění a monitorování kódu Java. | Obsahuje knihovny tříd a další podpůrné soubory, které JVM vyžaduje pro spuštění programu. | Nástroje pro vývoj softwaru nejsou součástí JVM. |
Jedná se o nadmnožinu JRE | Je to podmnožina JDK. | JVM je podmnožinou JRE. |
JDK umožňuje vývojářům vytvářet programy Java, které lze spouštět a spouštět JRE a JVM. | JRE je součástí Javy, která vytváří JVM. | Je to komponenta platformy Java, která provádí zdrojový kód. |
JDK je dodáván s instalačním programem. | JRE obsahuje pouze prostředí pro provádění zdrojového kódu. | JVM svázaný se softwarem JDK i JRE. |