JDK vs JRE vs JVM in Java – Rozdíl mezi nimi
Klíčový rozdíl mezi JDK, JRE a JVM
- JDK je sada pro vývoj softwaru, zatímco JRE je softwarový balík, který to umožňuje Java program spustit, zatímco JVM je prostředí pro spouštění bajtkódu.
- Plná forma JDK je Java Development Kit, zatímco plná forma JRE je Java Runtime Environment, zatímco plná forma JVM je Java Virtuální stroj.
- JDK a JRE jsou závislé na platformě, zatímco JVM je na úrovni bajtkódu nezávislé na platformě, ale závisí na implementacích specifických pro platformu.
- JDK obsahuje nástroje pro vývoj, ladění atd. JRE obsahuje knihovny tříd a další podpůrné soubory, zatímco nástroje pro vývoj softwaru nejsou součástí JVM.
- JDK je dodáván s instalačním programem, na druhou stranu JRE obsahuje pouze prostředí pro spouštění zdrojového kódu, zatímco JVM je součástí softwaru JDK i JRE.
Co je JDK?
JDK je prostředí pro vývoj softwaru používané pro vytváření apletů a Java aplikací. Plná forma JDK je Java Vývojová sada. Java vývojáři jej mohou používat Windows, macOS, Solarisa Linux. JDK jim pomáhá kódovat a spouštět Java programy. Na jeden počítač je možné nainstalovat více než jednu verzi JDK.
Co je JRE?
JRE je část softwaru, která je navržena pro spouštění jiného softwaru. Obsahuje knihovny tříd, třídu zavaděče a JVM. Jednoduše řečeno, pokud chcete běhat Java program, který potřebujete JRE. Pokud nejste programátor, nemusíte nainstalujte JDK, ale stačí spustit JRE Java programy. Všechny verze JDK jsou však součástí balení Java Runtime Environment, takže nemusíte stahovat a instalovat JRE samostatně do vašeho PC. Plná forma JRE je Java Runtime prostředí.
Co je JVM?
JVM je motor, který poskytuje běhové prostředí pro řízení Java Kód nebo aplikace. Převádí se Java bytecode do strojového jazyka. JVM je součástí Java Run Environment (JRE). Nelze jej samostatně stáhnout a nainstalovat. Chcete-li nainstalovat JVM, musíte nainstalovat JRE. Plná forma JVM je Java Virtuální stroj.
V mnoha jiných programovacích jazycích kompilátor vytváří strojový kód pro konkrétní systém. Však, Java kompilátor vytváří kód pro virtuální stroj, který se nazývá JVM.
Proč používat JDK?
Zde jsou důležité důvody používání JDK:
- JDK obsahuje nástroje potřebné k zápisu Java programy a JRE k jejich spouštění.
- Obsahuje kompilátor, Java spouštěč aplikací, Appletviewer atd.
- Kompilátor převádí kód napsaný v Java do bajtového kódu.
- Java spouštěč aplikací 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žívání JRE:
- JRE obsahuje knihovny tříd, JVM a další podpůrné soubory. Neobsahuje žádný nástroj pro Java vývoj jako 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 běžet Java aplety, pak 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 na platformě nezávislý způsob spouštění Java zdrojový kód.
- Má mnoho knihoven, nástrojů a frameworků.
- Jakmile budete běhat Java program, můžete spustit na jakékoli platformě a ušetřit spoustu času.
- JVM přichází s kompilátorem JIT (Just-in-Time), který převádí Java zdrojový kód do nízkoúrovňového strojového jazyka. Proto běží rychleji jako běžná aplikace.
Vlastnosti JDK
Zde jsou důležité funkce JDK:
- Umožňuje vám zpracovat více rozšíření v jednom bloku záchytu.
- JDK obsahuje všechny funkce, které má JRE.
- Obsahuje vývojové nástroje, jako je kompilátor, debugger atd.
- JDK poskytuje prostředí pro vývoj a spuštění Java zdrojový kód.
- Lze jej nainstalovat na Windowsoperační systémy Unix a Mac.
- Diamantový operátor lze použít při specifikaci rozhraní obecného typu namísto psaní přesného.
Vlastnosti JRE
Zde jsou důležité vlastnosti JRE:
- 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 Zapojit.
- Vývojáři mohou snadno spustit zdrojový kód v JRE, ale nemohou jej napsat a zkompilovat Java program.
- Zahrnuje integrační knihovny jako Java konektivita databáze (JDBC), vzdálené vyvolání metody (RMI), Java Naming and Directory Interface (JNDI) a další.
- JRE má JVM a Java Klient virtuálního počítače HotSpot.
Vlastnosti 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 Virtuální počítač převede bajtový kód na kód specifický pro počítač.
- Poskytuje základní funkce Java, jako je správa paměti, zabezpečení, sběr odpadu a další.
- JVM spouští program pomocí knihoven a souborů uvedených v Java Runtime prostředí.
- JDK i JRE obsahují Java Virtuální stroj.
- Může spouštět java program řádek po řádku, proto je také nazýván jako interpret.
- JVM je snadno přizpůsobitelné, například mu můžete přidělit minimální a maximální paměť.
- Je nezávislý na hardwaru a operačním systému. Takže můžete napsat java program jednou a spustit jej kdekoli.
Jak JDK funguje?
Zde jsou důležité součásti JDK:
- JDK a JRE: JDK umožňuje programátorům vytvářet jádro Java programy, které lze spouštět pomocí JRE, které zahrnovalo JVM a knihovny tříd.
- Třídní knihovny: Jedná se o skupinu dynamicky načítatelných knihoven, které Java program může volat za běhu.
- Kompilátory: Je Java program, který přijímá textový soubor vývojářů a zkompiluje do Java soubor třídy. Je to běžná forma výstupu daná kompilátorem, který obsahuje Java byte kód. V Java, primárním kompilátorem je Javac.
- Ladicí programy: Debugger je a Java program, který umožňuje vývojářům testovat a ladit Java programy.
- Javadoktor: JavaDoc je dokumentace vytvořená společností Sun Microsystems pro Java. JavaDokument lze použít ke generování dokumentace API v souboru HTML ze zdrojového programu
Jak funguje JRE?
JRE má instanci JVM, třídy knihoven a vývojové nástroje. Jakmile napíšete a zkompilujete Java kód, kompilátor vygeneruje soubor třídy s bajtovým kódem.
Zde jsou důležité součásti JRE:
- Nakladače třídy: Zavaděč tříd načte různé třídy, které jsou nezbytné pro spuštění a Java naprogramovat. JVM používá tři zavaděče třídy zvané bootstrap class loader, extensions class loader a system class loader.
- Ověřovač bajtového kódu: Ověřovač bajtového kódu ověřuje bajtový kód, aby kód nerušil interpreta.
- Tlumočník: Jakmile jsou třídy načteny a kód je ověřen, interpret přečte kód řádek po řádku.
- Doba běhu: Run-time je systém používaný především v programování k popisu časového období, během kterého konkrétní program běží.
- hardware: Jakmile zkompilujete Java nativní kód, běží na konkrétní hardwarové platformě.
Tímto způsobem Java program běží v JRE.
Jak JVM funguje?
Zde jsou důležité součásti JVM:
1) Class Loader
Zavaděč tříd je subsystém používaný pro načítání souborů tříd. Plní tři hlavní funkce, tj. Načítání, propojení a inicializace.
2) Oblast metody
Oblast metod JVM ukládá strukturu třídy jako metadata, kód pro Java metody a konstantní běhový fond.
3) Hromada
Všechny objekty, pole a proměnné instance jsou uloženy na hromadě. Tato paměť je sdílena mezi více vlákny.
4) Jazykové zásobníky JVM
Java Jazykové sady ukládají lokální proměnné a jejich dílčí výsledky. Každé vlákno má svůj vlastní jazykový zásobník JVM, který se vytváří souběžně s vytvářením vlákna. Při vyvolání metody se vytvoří nový rámec a po dokončení procesu vyvolání metody se odstraní.
5) Registry PC
Registry PC ukládají adresu Java instrukce virtuálního stroje, která se právě provádí. V Java, každé vlákno má svůj samostatný registr PC.
6) Zásobníky nativních metod
Zásobníky nativních metod obsahují instrukce nativního kódu závisí na nativní knihovně. Přiděluje paměť na nativní hromady nebo používá jakýkoli typ zásobníku.
7) Prováděcí stroj
Je to typ softwaru, který se používá k testování softwaru, hardwaru nebo celých systémů. Testovací engine nikdy nenese žádné informace o testovaném produktu.
8) Rozhraní nativní metody
Rozhraní Native Method Interface je programovací rámec. To umožňuje Java kód, který běží v JVM, aby mohl volat knihovny a nativní aplikace.
9) Knihovny nativních metod
Native Libraries je sbírka nativních knihoven (C, C++), které potřebuje Execution Engine.
Rozdíl mezi JDK, JRE a JVM
Zde jsou hlavní rozdíly mezi JDK vs. JRE vs. JVM:
JDK | JRE | JVM |
---|---|---|
Plná forma JDK je Java Vývojová sada. | Plná forma JRE je Java Runtime prostředí. | Plná forma JVM je Java Virtuální stroj. |
JDK je sada pro vývoj softwaru pro vývoj aplikací Java. | Jedná se o softwarový balík, který poskytuje Java knihovny tříd s nezbytnými komponentami ke spuštění Java kód. | JVM provede Java byte kód a poskytuje prostředí pro jeho spuštění. |
JDK je závislý na platformě. | JRE je také závislé na platformě. | JVM je platformově nezávislý. |
Obsahuje nástroje pro vývoj, ladění a monitorování java kódu. | Obsahuje knihovny tříd a další podpůrné soubory, které JVM vyžaduje ke spuštění programu. | Nástroje pro vývoj softwaru nejsou součástí JVM. |
Je to nadmnožina JRE | Je to podmnožina JDK. | JVM je podmnožinou JRE. |
JDK umožňuje vývojářům vytvářet Java programy, které lze spouštět a spouštět pomocí JRE a JVM. | JRE je součástí Java který vytváří JVM. | Je Java komponenta platformy, která spouští zdrojový kód. |
JDK je dodáván s instalačním programem. | JRE obsahuje pouze prostředí pro spouštění zdrojového kódu. | JVM je součástí softwaru JDK i JRE. |