Unterschied zwischen JRE und JVM

Hier werden wir verstehen, was JVM (Java Virtual Machine) ist, was JRE (Java Runtime Environment) ist. Darüber hinaus werden wir auch die Hauptunterschiede zwischen JVM und JRE untersuchen. In diesem Thema lernen wir JRE und JVM kennen.

Was ist JVM?

Die Java Virtual Machine (JVM) ist eine virtuelle Maschine, die sich auf Ihrem Computer befindet und Java-Bytecode ausführt. Die Java Virtual Machine versteht nur Byte-Code. Aus diesem Grund gibt es einen Javac-Compiler, der den Quellcode (.java) in Byte-Code (.class) konvertiert, der von JVM verstanden wird. Obwohl JVM in verschiedenen Betriebssystemen installiert ist, ist die von JVM erzeugte Ausgabe für alle Betriebssysteme konsistent.

Komponenten von JVM

Die folgenden Komponenten sind in JVM enthalten:

1. ClassLoader: Die Hauptfunktion des Klassenladeprogramms besteht darin, die .class-Datei zu lesen und den Bytecode im Methodenbereich der JVM zu speichern.

2. Methodenbereich: Der Methodenbereich von Java Virtual Machine speichert alle klassenbezogenen Informationen aller Klassen, die vom Klassenladeprogramm geladen werden.

3. Heap Area: Heap Area ist ein Teil von JVM, in dem sich erstellte Objekte befinden. JVM erstellt ein Klassenobjekt für jede vom Klassenladeprogramm geladene .class-Datei.

4. Stack: Dieser Teil von JVM speichert temporäre Variablen.

5. PC-Register: In PC-Registern wird aufgezeichnet, welcher Befehl ausgeführt wurde und welcher in der nächsten Zeile ausgeführt werden soll.

6. Nativer Methodenstapel: Der native Methodenstapel enthält die Informationen zum nativen Code. Es ist in anderen Programmiersprachen als Java geschrieben.

7. Execution Engine: Die Execution Engine von jvm ist für die Ausführung des Bytecodes oder des kompilierten Codes verantwortlich. Die Ausführungsmaschine von jvm enthält:

  • Virtueller Prozessor: Der virtuelle Prozessor ist für die sequentielle Ausführung von Operationscodes verantwortlich.
  • Interpreter: Der Interpreter interpretiert den Bytecode. Es ist dafür verantwortlich, den Bytecode-Stream zu lesen, Bytecode-Anweisungen zu interpretieren und sie über den virtuellen Prozessor auszuführen. Der Nachteil des Interpreters ist jedoch, dass bei mehrfachem Aufruf einer Methode jedes Mal eine neue Interpretation erforderlich ist.
  • JIT-Compiler (Just-In-Time): Er wird im Wesentlichen zur Leistungsverbesserung verwendet. Es wird verwendet, um den Nachteil des Interpreters zu überwinden, wenn JVM wiederholten Code findet. Es verwendet den JIT-Compiler, der den Bytecode kompiliert und in systemeigenen Code umwandelt. Dieser native Code wird direkt in wiederholten Methodenaufrufen verwendet, wodurch sich die Leistung drastisch verbessert.

Aus den oben aufgeführten Komponenten lassen sich die Funktionen von JVM wie folgt zusammenfassen:

  • JVM lädt Code.
  • JVM überprüft den geladenen Code.
  • JVM führt Code aus, wenn er gültig ist.
  • JVM bietet eine Laufzeitumgebung.

Die Arbeitsweise von JVM kann durch den folgenden Ablauf erklärt werden:

Was ist JRE?

Java Runtime Environment ist Teil des Java Development Kit (JDK).

Java Runtime Environment (JRE) ist ein Installationspaket, das eine Umgebung zum Ausführen von Java-Code bereitstellt. Es ist zu beachten, dass JRE nur von Endbenutzern verwendet wird, die Java-Code ausführen möchten. JRE enthält JVM, dh JVM ist eine Teilmenge von JRE. Java Runtime Environment umfasst Folgendes:

Bereitstellungstechnologien.

  1. User Interface Toolkits wie das Abstract Window Toolkit (AWT), das Swing, das Java Naming and Directory Interface (JBDI), Java 2D, der Druckservice, Drag & Drop (DND) usw.
  2. Lang- und Util-Bibliotheken wie lang and util, Verwaltung, Zip, Reflection, JAR, Preference API, Regular Expressions Concurrency- und Multithreading-Dienstprogramme, Protokollierung und andere.
  3. Basisbibliotheken, einschließlich Eingabe / Ausgabe (E / A), Mathematik, Netzwerk, Überschreibungsmechanismus-Serialisierung, Java XML-Parser, Java Native Interface (JNI).
  4. Integrationsbibliotheken, z. B. Interface Definition Language, Java DataBase Connectivity (JDBC), Remote Method Invocation (RMI), Java Naming und Directory Interface (JNDI).
  5. Java Virtual Machine (JVM).

Head to Head Vergleich zwischen JRE und JVM (Infografik)

Nachfolgend sind die Top-8-Unterschiede zwischen JRE und JVM aufgeführt

Hauptunterschiede zwischen JRE und JVM

Das Folgende sind die Hauptunterschiede zwischen JRE und JVM

  • Die Hauptfunktion von JRE besteht darin, eine Laufzeitumgebung zum Ausführen von Java-Anwendungen bereitzustellen, während JVM Byte-Code zur Ausführung in Maschinencode konvertiert und Plattformunabhängigkeit bietet.
  • JRE fungiert als Container und JVM als Inhalt.
  • JRE besteht aus JVM + -Bibliotheken zum Ausführen von Anwendungen, während jvm nur eine Laufzeitumgebung zum Ausführen von Java-Bytecode enthält.

Vergleichstabelle zwischen JRE und JVM

Lassen Sie uns den Top-Vergleich zwischen JRE und JVM diskutieren

VergleichsbasisJREJVM
Vollständige FormDie vollständige Form von JRE ist die Java-Laufzeitumgebung.Die vollständige Form von JVM ist Java Virtual Machine.
DefinitionJava Runtime Environment ist Teil des Java Development Kit (JDK), das aus einer JVM, Kernklassen und Unterstützungsbibliotheken besteht. Seine Hauptfunktion besteht darin, eine Laufzeitumgebung zum Ausführen von Java-Code bereitzustellen.Java Virtual Machine (JVM) ist wie ein virtueller Computer, der eine Reihe vorkompilierter Anweisungen ausführt. Wenn ein Java-Compiler Quellcode kompiliert, generiert er eine Reihe von Anweisungen, die als Bytecode (.class-Dateien) bezeichnet werden. Die Java Virtual Machine interpretiert Bytecode-Anweisungen und konvertiert sie zur Ausführung in Maschinencode.
Container und InhaltJRE fungiert als Container, der JVM, Bibliotheken und andere Dateien enthält. Darüber hinaus enthält JRE keine Entwicklungstools wie Compiler und Debugger.JVM ist ein Teil von JRE. Es kann als Teilmenge von JRE betrachtet werden.
EntwicklungszweckEs wird nicht für Entwicklungszwecke verwendet.Es wird zu Entwicklungszwecken verwendet.
Laufen ZweckEs wird zum Ausführen von Java-Code verwendet.Es wird nicht zum Ausführen von Java-Code verwendet.
Zusammengesetzt ausJRE besteht aus JVM + -Bibliotheken zum Ausführen von Anwendungen.Es enthält nur eine Laufzeitumgebung zur Ausführung von Java-Bytecode.
Teilmenge vonEs ist eine Teilmenge von JDK.Es ist eine Teilmenge von JRE.
WerkzeugeEs enthält Klassenbibliotheken, die zum Ausführen von Programmen erforderlich sind.Es enthält keine Werkzeuge.

Fazit - JRE vs JVM

Der Artikel vermittelt ein klares Verständnis sowohl der Java Runtime Environment (JRE) als auch der Java Virtual Machine (JVM), die die wichtigsten Bestandteile des Java Development Kit (JDK) sind.

Empfohlene Artikel

Dies ist eine Anleitung zu JRE vs JVM. Hier haben wir die wichtigsten Unterschiede zwischen JRE und JVM mit Infografiken und Vergleichstabelle besprochen. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

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