JDK vs. JRE vs. JVM in Java – Unterschiede zwischen ihnen

Hauptunterschied zwischen JDK, JRE und JVM

  • JDK ist ein Software-Entwicklungskit, während JRE ein Softwarepaket ist, das die Ausführung von Java-Programmen ermöglicht, während JVM eine Umgebung zum Ausführen von Bytecode ist.
  • Die vollständige Form von JDK ist Java Development Kit, während die vollständige Form von JRE Java Runtime Environment ist, während die vollständige Form von JVM Java Virtual Machine ist.
  • JDK ist plattformabhängig, JRE ist ebenfalls plattformabhängig, aber JVM ist nicht plattformunabhängig.
  • JDK enthält Tools zum Entwickeln, Debuggen usw. JRE enthält Klassenbibliotheken und andere unterstützende Dateien, während Softwareentwicklungstools nicht in JVM enthalten sind.
  • JDK wird mit dem Installationsprogramm geliefert, wohingegen JRE nur die Umgebung zum Ausführen des Quellcodes enthält, während JVM sowohl in der Software JDK als auch in JRE gebündelt ist.

Was ist JDK?

JDK ist eine Softwareentwicklungsumgebung, die zum Erstellen von Applets und Java-Anwendungen verwendet wird. Die vollständige Form von JDK ist Java Development Kit. Java-Entwickler können es verwenden Windows, macOS, Solaris, und Linux. JDK hilft ihnen beim Programmieren und Ausführen von Java-Programmen. Es ist möglich, mehr als eine JDK-Version auf demselben Computer zu installieren.

Was ist JRE?

JRE ist ein Teil einer Software, der für die Ausführung anderer Software konzipiert ist. Es enthält die Klassenbibliotheken, die Loader-Klasse und die JVM. Einfach ausgedrückt: Wenn Sie ein Java-Programm ausführen möchten, benötigen Sie JRE. Wenn Sie kein Programmierer sind, müssen Sie das auch nicht Installieren Sie JDK, sondern nur JRE, um Java-Programme auszuführen. Allerdings werden alle JDK-Versionen mit Java Runtime Environment geliefert, sodass Sie die JRE nicht separat herunterladen und auf Ihrem PC installieren müssen. Die vollständige Form von JRE ist Java Runtime Environment.

Was ist JVM?

JVM ist eine Engine, die eine Laufzeitumgebung zur Steuerung des Java-Codes oder der Java-Anwendungen bereitstellt. Es wandelt Java-Bytecode in Maschinensprache um. JVM ist ein Teil von Java Run Environment (JRE). Es kann nicht separat heruntergeladen und installiert werden. Um JVM zu installieren, müssen Sie JRE installieren. Die vollständige Form von JVM ist Java virtuelle Maschine.

In vielen anderen Programmiersprachen erstellt der Compiler Maschinencode für ein bestimmtes System. Der Java-Compiler erzeugt jedoch Code für eine virtuelle Maschine, die als JVM bezeichnet wird.

Warum JDK verwenden?

Hier sind die wichtigen Gründe für die Verwendung von JDK:

  • JDK enthält Tools, die zum Schreiben von Java-Programmen erforderlich sind, und JRE, um diese auszuführen.
  • Es umfasst einen Compiler, einen Java-Anwendungsstarter, einen Appletviewer usw.
  • Der Compiler wandelt in Java geschriebenen Code in Bytecode um.
  • Der Java Application Launcher öffnet eine JRE, lädt die erforderliche Klasse und führt deren Hauptmethode aus.

Warum JRE verwenden?

Hier sind die wichtigen Gründe für die Verwendung von JRE:

  • JRE enthält Klassenbibliotheken, JVM und andere unterstützende Dateien. Es enthält kein Tool für die Java-Entwicklung wie einen Debugger, Compiler usw.
  • Es verwendet wichtige Paketklassen wie Mathe, swingetc, util, lang, awt und Laufzeitbibliotheken.
  • Wenn Sie Java-Applets ausführen müssen, muss JRE auf Ihrem System installiert sein.

Warum JVM?

Hier sind die wichtigen Gründe für die Verwendung von JVM:

  • JVM bietet eine plattformunabhängige Möglichkeit, Java-Quellcode auszuführen.
  • Es verfügt über zahlreiche Bibliotheken, Tools und Frameworks.
  • Sobald Sie ein Java-Programm ausgeführt haben, können Sie es auf jeder Plattform ausführen und viel Zeit sparen.
  • JVM wird mit einem JIT-Compiler (Just-in-Time) geliefert, der Java-Quellcode in eine Maschinensprache auf niedriger Ebene konvertiert. Daher läuft es schneller als eine reguläre Anwendung.

Funktionen von JDK

Hier sind die wichtigen Funktionen von JDK:

  • Es ermöglicht Ihnen, mehrere Erweiterungen in einem einzigen Catch-Block zu verarbeiten.
  • JDK umfasst alle Funktionen, die JRE bietet.
  • Es enthält Entwicklungstools wie einen Compiler, Debugger usw.
  • JDK bietet die Umgebung zum Entwickeln und Ausführen von Java-Quellcode.
  • Es kann installiert werden Windows, Unix und Mac operating-Systeme.
  • Diamond operator kann zum Angeben einer generischen Typschnittstelle verwendet werden, anstatt die genaue Schnittstelle zu schreiben.

Merkmale von JRE

Hier sind die wichtigen Funktionen von JRE:

  • Java Runtime Environment ist eine Reihe von Tools, mit denen die JVM tatsächlich ausgeführt wird.
  • JRE enthält Bereitstellungstechnologie, einschließlich Java Web Start und Java Plug-in.
  • Entwickler können den Quellcode problemlos in JRE ausführen, aber sie können das Java-Programm nicht schreiben und kompilieren.
  • Es umfasst Integrationsbibliotheken wie Java Database Connectivity (JDBC), Remote Method Invocation (RMI), Java Naming and Directory Interface (JNDI) und mehr.
  • JRE verfügt über einen JVM- und Java HotSpot-Client für virtuelle Maschinen.

Funktionen von JVM

Hier sind die wichtigen Funktionen von JVM:

  • Es ermöglicht Ihnen, Anwendungen in einer Cloud-Umgebung oder auf Ihrem Gerät auszuführen.
  • Java Virtual Machine konvertiert Bytecode in maschinenspezifischen Code.
  • Es bietet grundlegende Java-Funktionen wie Speicherverwaltung, Sicherheit, Speicherbereinigung und mehr.
  • JVM führt das Programm mithilfe von Bibliotheken und Dateien aus, die von Java Runtime Environment bereitgestellt werden.
  • JDK und JRE enthalten beide Java Virtual Machine.
  • Es kann das Java-Programm Zeile für Zeile ausführen und wird daher auch als Interpreter bezeichnet.
  • JVM ist leicht anpassbar, Sie können ihr beispielsweise minimalen und maximalen Speicher zuweisen.
  • Es ist unabhängig von der Hardware und dem operatungssystem. Sie können also einmal ein Java-Programm schreiben und es überall ausführen.

Wie funktioniert JDK?

JDK-Funktionen
JDK-Funktionalität

Hier sind die wichtigen Komponenten von JDK:

  • JDK und JRE: Das JDK ermöglicht es Programmierern, Kern-Java-Programme zu erstellen, die von der JRE ausgeführt werden können, einschließlich JVM und Klassenbibliotheken.
  • Klassenbibliotheken: Es handelt sich um eine Gruppe dynamisch ladbarer Bibliotheken, die ein Java-Programm zur Laufzeit aufrufen kann.
  • Compiler: Es handelt sich um ein Java-Programm, das Textdateien von Entwicklern akzeptiert und in eine Java-Klassendatei kompiliert. Dabei handelt es sich um die übliche Ausgabeform des Compilers, die Java-Bytecode enthält. In Java ist Javac der primäre Compiler.
  • Debugger: Debugger ist ein Java-Programm, mit dem Entwickler Java-Programme testen und debuggen können.
  • JavaDoc: JavaDoc ist eine von Sun Microsystems erstellte Dokumentation für Java. JavaDoc kann zum Generieren einer API-Dokumentation in einer HTML-Datei aus dem Quellprogramm verwendet werden

Wie funktioniert JRE?

JRE-Funktionen

JRE-Funktionalität

JRE verfügt über eine Instanz von JVM, Bibliotheksklassen und Entwicklungstools. Sobald Sie Java-Code schreiben und kompilieren, generiert der Compiler eine Klassendatei mit Bytecode.

Hier sind die wichtigen Komponenten von JRE:

  • Klassenlader: Der Klassenlader lädt verschiedene Klassen, die zum Ausführen eines Java-Programms erforderlich sind. JVM verwendet drei Klassenlader, den Bootstrap-Klassenlader, den Erweiterungsklassenlader und den Systemklassenlader.
  • Bytecode-Verifizierer: Der Bytecode-Verifizierer überprüft den Bytecode, sodass der Code den Interpreter nicht stört.
  • Dolmetscher: Sobald die Klassen geladen und der Code überprüft ist, liest der Interpreter den Code Zeile für Zeile.
  • Laufzeit: Laufzeit ist ein System, das hauptsächlich in der Programmierung verwendet wird, um den Zeitraum zu beschreiben, in dem ein bestimmtes Programm ausgeführt wird.
  • Hardware: Sobald Sie nativen Java-Code kompiliert haben, läuft er auf einer bestimmten Hardwareplattform.

Auf diese Weise läuft das Java-Programm in JRE.

Wie funktioniert JVM?

JVM-Funktionen

JVM-Funktionalität

Hier sind die wichtigen Komponenten von JVM:

1) Klassenlader

Der Klassenlader ist ein Subsystem zum Laden von Klassendateien. Es erfüllt drei Hauptfunktionen viz. Laden, Verknüpfen und Initialisieren.

2) Methodenbereich

Der JVM-Methodenbereich speichert Klassenstrukturen wie Metadaten, den Code für Java-Methoden und den konstanten Laufzeitpool.

3) Haufen

Alle Objekte, Arrays und Instanzvariablen werden in einem Heap gespeichert. Dieser Speicher wird von mehreren Threads gemeinsam genutzt.

4) JVM-Sprachstapel

Java-Sprachstacks speichern lokale Variablen und deren Teilergebnisse. Jeder einzelne Thread verfügt über seinen eigenen JVM-Sprachstapel, der gleichzeitig mit der Erstellung des Threads erstellt wird. Beim Aufruf einer Methode wird ein neuer Frame erstellt und nach Abschluss des Methodenaufrufs entfernt.

5) PC-Register

PC-Register speichern die Adresse der Java Virtual Machine-Anweisung, die gerade ausgeführt wird. In Java verfügt jeder Thread über ein separates PC-Register.

6) Native Methodenstapel

Native Methodenstapel enthalten Anweisungen für nativen Code, der von der nativen Bibliothek abhängt. Es weist Speicher auf nativen Heaps zu oder verwendet jede Art von Stapel.

7) Ausführungs-Engine

Dabei handelt es sich um eine Art Software, die zum Testen von Software, Hardware oder kompletten Systemen verwendet wird. Die Testausführungs-Engine übermittelt niemals Informationen über das getestete Produkt.

8) Native Method-Schnittstelle

Das Native Method Interface ist ein Programmierframework. Es ermöglicht den Aufruf von Java-Code, der in einer JVM ausgeführt wird, durch Bibliotheken und native Anwendungen.

9) Native Methodenbibliotheken

Native Libraries ist eine Sammlung der Native Libraries (C, C++), die von der Execution Engine benötigt werden.

Unterschied zwischen JDK, JRE und JVM

Hier sind die Hauptunterschiede zwischen JDK vs. JRE vs. JVM:

JDK JRE JVM
Die vollständige Form von JDK ist Java Development Kit. Die vollständige Form von JRE ist Java Runtime Environment. Die vollständige Form von JVM ist Java Virtual Machine.
JDK ist ein Software-Entwicklungskit zur Entwicklung von Anwendungen in Java. Es handelt sich um ein Softwarepaket, das Java-Klassenbibliotheken mit den notwendigen Komponenten zum Ausführen von Java-Code bereitstellt. JVM führt Java-Bytecode aus und stellt eine Umgebung für dessen Ausführung bereit.
JDK ist plattformabhängig. JRE ist auch plattformabhängig. JVM ist stark plattformabhängig.
Es enthält Tools zum Entwickeln, Debuggen und Überwachen von Java-Code. Es enthält Klassenbibliotheken und andere unterstützende Dateien, die JVM zum Ausführen des Programms benötigt. Softwareentwicklungstools sind nicht in JVM enthalten.
Es ist die Obermenge von JRE Es ist die Teilmenge von JDK. JVM ist eine Teilmenge von JRE.
Mit dem JDK können Entwickler Java-Programme erstellen, die von JRE und JVM ausgeführt und ausgeführt werden können. Die JRE ist der Teil von Java, der die JVM erstellt. Es handelt sich um die Java-Plattformkomponente, die den Quellcode ausführt.
JDK wird mit dem Installationsprogramm geliefert. JRE enthält nur eine Umgebung zum Ausführen von Quellcode. JVM ist sowohl im Software-JDK als auch im JRE gebündelt.