Rozdiel medzi JRE verzus JVM

Tu pochopíme, čo je JVM (Java virtual machine), čo je JRE (Java Runtime Environment). Ďalej budeme študovať hlavné rozdiely medzi JVM a JRE. V tejto téme sa dozvieme viac o JRE vs JVM.

Čo je JVM?

Java Virtual Machine (JVM) je virtuálny stroj, ktorý sa nachádza vo vašom počítači a vykonáva bajtový kód java. Java Virtual Machine chápe iba bajtový kód, a preto existuje kompilátor javac, ktorý prevádza zdrojový kód (.java) na bajtový kód (.class), ktorému rozumie JVM. Aj keď je JVM inštalovaný v rôznych operačných systémoch odlišný, výstup vytvorený JVM je konzistentný vo všetkých operačných systémoch.

Komponenty JVM

Vo vnútri JVM sú rôzne komponenty:

1. ClassLoader: Hlavnou funkciou triediča je načítanie súboru .class a uloženie bajtkódu do oblasti metód JVM.

2. Oblasť metód: V oblasti metód Java Virtual Machine sa ukladajú všetky informácie súvisiace so triedami všetkých tried, ktoré sa načítajú zavádzačom tried.

3. Heap Area: Heap Area je časť JVM, kde sa nachádzajú vytvorené objekty. JVM vytvorí objekt triedy pre každý súbor .class načítaný zavádzačom triedy.

4. Stack: Táto časť JVM ukladá dočasné premenné.

5. Registre PC: Registre PC vedú záznamy o tom, ktorá inštrukcia bola vykonaná a ktorá je najbližšia v rade na vykonanie.

6. Zásobník natívnych metód : Zásobník natívnych metód obsahuje informácie o natívnom kóde. Je napísaný v iných programovacích jazykoch ako java.

7. Vykonávací mechanizmus: Vykonávací mechanizmus jvm je zodpovedný za vykonanie bajtkódu alebo skompilovaného kódu. Vykonávací motor jvm obsahuje:

  • Virtuálny procesor: Virtuálny procesor je zodpovedný za postupné vykonávanie kódov operácií.
  • Interpreter: Interpret interpretuje bajtkód. Je zodpovedný za čítanie toku bajtového kódu, interpretáciu pokynov v bajtovom kóde a za ich vykonanie prostredníctvom virtuálneho procesora. Nevýhodou tlmočníka je to, že keď sa jedna metóda nazýva viackrát, zakaždým sa vyžaduje nová interpretácia.
  • Kompilátor Just-In-Time (JIT): Používa sa v zásade na zvýšenie výkonu. Používa sa na prekonanie nevýhody tlmočníka, keď JVM nájde opakovaný kód, používa kompilátor JIT, ktorý kompiluje bajtkód a zmení ho na natívny kód. Tento natívny kód sa priamo používa pri opakovanom volaní metód, čo zase výrazne zvyšuje výkon.

Z vyššie uvedených podrobností možno funkcie JVM zhrnúť takto:

  • JVM načíta kód.
  • JVM overí načítaný kód.
  • JVM vykoná kód, ak je platný.
  • JVM poskytuje runtime prostredie.

Fungovanie JVM možno vysvetliť pomocou nasledujúceho postupu:

Čo je JRE?

Java Runtime Environment je súčasťou vývojovej sady Java (JDK).

Java Runtime Environment (JRE) je inštalačný balík, ktorý poskytuje prostredie na spustenie java kódu. Je potrebné poznamenať, že JRE používajú iba koncoví používatelia, ktorí chcú spustiť java kód. JRE obsahuje JVM v tom, že JVM je podmnožinou JRE. Java Runtime Environment obsahuje nasledujúce:

Technológie nasadenia.

  1. Nástroje používateľského rozhrania, ako sú Abstraktné okno nástrojov (AWT), Swing, pomenovanie Java a adresárové rozhranie (JBDI), Java 2D, tlačové služby, drag and drop (DND) atď.
  2. Využite knižnice ako je lang and util, správa, zip, reflexia, JAR, Preference API, regulárne výrazy Concurrency a multithreadingové nástroje, logovanie a ďalšie.
  3. Základné knižnice vrátane vstupno-výstupných (I / 0), matematických, sieťových, mechanizmov potlačenia sérializácie, syntaktických analyzátorov Java XML, natívneho rozhrania Java (JNI).
  4. Integračné knižnice, napríklad Interface Definition Language, Java DataBase Connectivity (JDBC), Remote Method Invocation (RMI), Java Naming and Directory Interface (JNDI).
  5. Java Virtual Machine (JVM).

Porovnanie vzájomných vzťahov medzi JRE a JVM (infografika)

Nižšie je uvedených 8 najlepších rozdielov medzi JRE verzus JVM

Kľúčové rozdiely medzi JRE a JVM

Nasledujú kľúčové rozdiely medzi JRE verzus JVM

  • Hlavnou funkciou JRE je poskytovať runtime prostredie na spúšťanie Java aplikácií, zatiaľ čo JVM prevádza bajtový kód na strojový kód na vykonávanie a poskytuje nezávislosť od platformy.
  • JRE slúži ako kontajner a jvm ako obsah.
  • JRE sa skladá z knižníc JVM + na spúšťanie aplikácií, zatiaľ čo jvm obsahuje iba runtime prostredie na vykonávanie bajtkódu Java.

Porovnávacia tabuľka medzi JRE vs JVM

Poďme diskutovať o najlepšom porovnaní medzi JRE vs JVM

Základ porovnaniaJREJVM
Plná formaÚplnou formou JRE je prostredie Java Runtime Environment.Úplnou formou JVM je Java Virtual Machine.
definíciaJava Runtime Environment je súčasťou Java Development Kit (JDK), ktorá obsahuje JVM, základné triedy a podporné knižnice. Jeho hlavnou funkciou je poskytnúť runtime prostredie na spustenie java kódu.Java Virtual Machine (JVM) je ako virtuálny počítač, ktorý vykonáva množinu predkompilovaných príkazov. Keď kompilátor Java kompiluje zdrojový kód, vygeneruje súbor inštrukcií nazývaných bytecode (súbory .class). Java Virtual Machine interpretuje inštrukcie v bajtovom kóde a prevádza ich do strojového kódu na jeho vykonanie.
Kontajner a obsahJRE slúži ako kontajner, ktorý obsahuje JVM, knižnice a ďalšie súbory. JRE navyše neobsahuje vývojové nástroje ako kompilátor a debugger.JVM je súčasťou JRE. Môže sa považovať za podmnožinu JRE.
Účel rozvojaNepoužíva sa na účely vývoja.Používa sa na účely vývoja.
Prevádzkový účelPoužíva sa na spustenie java kódu.Nepoužíva sa na beh java kódu.
Zložený zJRE sa skladá z knižníc JVM + na spúšťanie aplikácií.Obsahuje iba runtime prostredie na vykonávanie bajtkódu Java.
PodmnožinaJe to podmnožina JDK.Je to podmnožina JRE.
náradieObsahuje triedy knižníc, ktoré sú potrebné na spustenie programov.Neobsahuje žiadne nástroje.

Záver - JRE vs JVM

Z tohto článku jasne chápeme prostredie Java Runtime Environment (JRE) a Java Virtual Machine (JVM), ktoré sú najdôležitejšími súčasťami Java Development Kit (JDK).

Odporúčané články

Toto je sprievodca JRE verzus JVM. Tu sme diskutovali o kľúčových rozdieloch JRE vs JVM s informačnou a porovnávacou tabuľkou. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

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

Kategórie: