Rozdíl mezi JRE vs. JVM

Zde pochopíme, co je JVM (Java virtual machine), co je JRE (Java Runtime Environment). Kromě toho budeme také studovat hlavní rozdíly mezi JVM a JRE. V tomto tématu se budeme učit o JRE vs JVM.

Co je JVM?

Virtuální stroj Java (JVM) je virtuální počítač, který je umístěn ve vašem počítači a vykonává java bajtový kód. Java Virtual Machine chápe pouze bajtový kód, proto existuje kompilátor javac, který převádí zdrojový kód (.java) na bajtový kód (.class), kterému rozumí JVM. Přestože je JVM nainstalovaný v různých operačních systémech odlišný, výstup vytvořený JVM je ve všech operačních systémech shodný.

Komponenty JVM

Uvnitř JVM jsou různé komponenty:

1. ClassLoader: Hlavní funkcí zavaděče třídy je čtení souboru .class a uložení bajtkódu do oblasti metod JVM.

2. Oblast metod: V oblasti metod Java Virtual Machine jsou uloženy všechny informace týkající se třídy všech tříd načítaných zavaděčem třídy.

3. Oblast haldy: Oblast haldy je součástí JVM, kde jsou umístěny vytvořené objekty. JVM vytvoří objekt třídy pro každý soubor .class načtený zavaděčem třídy.

4. Stack: Tato část JVM ukládá dočasné proměnné.

5. Registry PC: Registry PC uchovávají záznam, který pokyn byl proveden a který je další v řadě, která má být provedena.

6. Zásobník nativních metod : Zásobník nativních metod obsahuje informace o nativním kódu. Je psán v jiných programovacích jazycích než java.

7. Prováděcí modul : Prováděcí modul jvm je zodpovědný za provedení bajtkódu nebo kompilovaného kódu. Spouštěcí motor jvm obsahuje:

  • Virtuální procesor: Virtuální procesor je zodpovědný za postupné provádění kódů operací.
  • Interpreter: Interpret interpretuje bytecode. Je zodpovědný za čtení proudu bajtového kódu, za interpretaci pokynů v bajtovém kódu a za jejich provedení pomocí virtuálního procesoru. Nevýhodou tlumočníka je však to, že když je jedna metoda nazývána vícekrát, pokaždé je vyžadována nová interpretace.
  • Kompilátor Just-In-Time (JIT): V zásadě se používá ke zlepšení výkonu. Používá se k překonání nevýhody tlumočníka, když JVM najde opakovaný kód, používá kompilátor JIT, který kompiluje bytecode a změní jej na nativní kód. Tento nativní kód se přímo používá při opakovaných voláních metod, což zase přináší výrazné zlepšení výkonu.

Z výše uvedených podrobností lze funkce JVM shrnout takto:

  • JVM načte kód.
  • JVM ověří načtený kód.
  • JVM provede kód, pokud je platný.
  • JVM poskytuje běhové prostředí.

Fungování JVM lze vysvětlit pomocí následujícího postupu:

Co je JRE?

Java Runtime Environment je součástí vývojové sady Java (JDK).

Java Runtime Environment (JRE) je instalační balíček, který poskytuje prostředí pro spouštění java kódu. Je třeba poznamenat, že JRE používají pouze koncoví uživatelé, kteří chtějí spustit java kód. JRE obsahuje JVM v tom, že JVM je podmnožinou JRE. Prostředí Java Runtime Environment zahrnuje následující:

Technologie nasazení.

  1. Nástroje uživatelského rozhraní, jako jsou abstraktní okna Toolkit (AWT), Swing, Java Naming a Directory Interface (JBDI), Java 2D, Print Service, Drag and Drop (DND) atd.
  2. Využijte knihovny jako lang and util, správa, zip, reflexe, JAR, Preference API, regulární výrazy Concurrency a multithreadingové nástroje, Logging a další.
  3. Základní knihovny včetně vstupně-výstupních (I / 0), matematických, síťových, přepisovacích mechanismů, serializace, analyzátorů Java XML, Java Native Interface (JNI).
  4. Integrační knihovny, například Interface Definition Language, Java DataBase Connectivity (JDBC), Remote Method Invocation (RMI), Java Naming and Directory Interface (JNDI).
  5. Java Virtual Machine (JVM).

Srovnání hlava-hlava mezi JRE vs JVM (infografika)

Níže je uvedeno osm největších rozdílů mezi JRE vs. JVM

Klíčové rozdíly mezi JRE vs. JVM

Níže jsou uvedeny klíčové rozdíly mezi JRE a JVM

  • Hlavní funkcí JRE je poskytovat běhové prostředí pro spouštění aplikací Java, zatímco JVM převádí bajtový kód na strojový kód pro provádění a poskytuje nezávislost na platformě.
  • JRE funguje jako kontejner a jvm jako obsah.
  • JRE se skládá z knihoven JVM + pro spouštění aplikací, zatímco jvm obsahuje pouze běhové prostředí pro provádění Java bytecode.

Srovnávací tabulka mezi JRE vs JVM

Pojďme diskutovat o nejlepším srovnání mezi JRE vs JVM

Základ srovnáníJREJVM
Full-formPlnou formou JRE je Java Runtime Environment.Plnou formou JVM je Java Virtual Machine.
DefiniceJava Runtime Environment je součástí Java Development Kit (JDK), která se skládá z JVM, základních tříd a podpůrných knihoven. Jeho hlavní funkcí je poskytovat běhové prostředí pro spuštění java kódu.Java Virtual Machine (JVM) je jako virtuální počítač, který provádí sadu předkompilovaných příkazů. Když kompilátor Java kompiluje zdrojový kód, vygeneruje sadu instrukcí nazvaných bytecode (soubory .class). Java Virtual Machine interpretuje instrukce bajtkódu a převádí je do strojového kódu pro jeho provedení.
Kontejner a obsahJRE funguje jako kontejner, který obsahuje JVM, knihovny a další soubory. JRE navíc neobsahuje vývojové nástroje jako kompilátor a debugger.JVM je součástí JRE. Lze to považovat za podmnožinu JRE.
Účel rozvojeNepoužívá se pro účely vývoje.Používá se pro účely vývoje.
Běh ÚčelPoužívá se pro spuštění java kódu.Nepoužívá se pro běh java kódu.
Složen zJRE se skládá z knihoven JVM + pro spouštění aplikací.Obsahuje pouze běhové prostředí pro provádění Java bytecode.
PodmnožinaJe to podmnožina JDK.Je to podmnožina JRE.
NástrojeObsahuje knihovny tříd, které jsou vyžadovány ke spuštění programů.Neobsahuje žádné nástroje.

Závěr - JRE vs. JVM

Z tohoto článku máme jasné pochopení prostředí Java Runtime Environment (JRE) a Java Virtual Machine (JVM), které jsou nejdůležitějšími částmi sady Java Development Kit (JDK).

Doporučené články

Toto je průvodce JRE vs JVM. Zde jsme diskutovali o klíčových rozdílech JRE vs JVM s infografikou a srovnávací tabulkou. Další informace naleznete také v následujících článcích -

  1. Java vs Node JS
  2. Groovy vs Java
  3. Java vs C #
  4. Java vs JavaScript

Kategorie: