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

Hauptunterschied zwischen JDK, JRE und JVM

  • JDK ist ein Software Development Kit, während JRE ein Softwarepaket ist, das es ermöglicht Java Programm zum Ausführen, während JVM eine Umgebung zum Ausführen von Bytecode ist.
  • Die Langform von JDK lautet Java Development Kit, während die Langform von JRE ist Java Runtime Environment, während die Vollform von JVM Java Virtuelle Maschine.
  • JDK und JRE sind plattformabhängig, während JVM auf Bytecodeebene plattformunabhängig ist, aber von plattformspezifischen Implementierungen abhängt.
  • 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 Software-Entwicklungsumgebung für die Erstellung von Applets und Java Anwendungen. Die Langform von JDK lautet Java Entwicklungs-Kit. Java Entwickler können es verwenden auf Windows, macOS, Solarisund Linux. JDK hilft ihnen beim Codieren und Ausführen Java Programme. Es ist möglich, mehr als eine JDK-Version auf demselben Computer zu installieren.

Was ist JRE?

JRE ist ein Teil einer Software, die dazu bestimmt ist, andere Software auszuführen. Es enthält die Klassenbibliotheken, die Loader-Klasse und die JVM. Einfach ausgedrückt: Wenn Sie Java Programm benötigen Sie JRE. Wenn Sie kein Programmierer sind, müssen Sie nicht Installieren Sie JDK, aber nur JRE zu laufen Java Programme. Allerdings sind alle JDK-Versionen mit Java Runtime Environment, sodass Sie die JRE nicht separat herunterladen und auf Ihrem PC installieren müssen. Die vollständige Form von JRE lautet Java Laufzeitumgebung.

Was ist JVM?

JVM ist eine Engine, die eine Laufzeitumgebung bereitstellt, um die Java Code oder Anwendungen. Es konvertiert Java Bytecode in Maschinensprache. 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 lautet Java Virtuelle Maschine.

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

Warum JDK verwenden?

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

  • JDK enthält Tools, die zum Schreiben erforderlich sind Java Programme und JRE, um sie auszuführen.
  • Es enthält einen Compiler, Java Anwendungsstarter, Appletviewer usw.
  • Der Compiler konvertiert Code, der in Java in Bytecode.
  • Java Der Anwendungsstarter öffnet eine JRE, lädt die erforderliche Klasse und führt ihre 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 Java Entwicklung wie Debugger, Compiler usw.
  • Es verwendet wichtige Paketklassen wie Math, Swingetc, Util, Lang, Awt und Laufzeitbibliotheken.
  • Wenn du rennen musst Java Applets, dann 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 zur Ausführung Java Quellcode.
  • Es verfügt über zahlreiche Bibliotheken, Tools und Frameworks.
  • Sobald Sie laufen Java Programm, das Sie auf jeder Plattform ausführen können und viel Zeit sparen.
  • JVM verfügt über einen JIT(Just-in-Time)-Compiler, der konvertiert Java Quellcode in eine maschinennahe Sprache. Daher läuft es schneller als eine normale 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 Java Quellcode.
  • Es kann installiert werden Windows, Unix- und Mac-Betriebssysteme.
  • Der Diamantoperator kann zum Angeben einer generischen Typschnittstelle verwendet werden, anstatt die exakte zu schreiben.

Merkmale von JRE

Hier sind die wichtigen Funktionen von JRE:

  • Java Die Laufzeitumgebung 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 Plugin.
  • Entwickler können den Quellcode problemlos in JRE ausführen, aber er/sie kann den Java
  • Es enthält Integrationsbibliotheken wie Java Datenbankkonnektivität (JDBC), Remote Method Invocation (RMI), Java Naming and Directory Interface (JNDI) und mehr.
  • JRE verfügt über 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 Die virtuelle Maschine konvertiert Bytecode in maschinenspezifischen Code.
  • Es bietet grundlegende Java-Funktionen wie Speicherverwaltung, Sicherheit, Speicherbereinigung und mehr.
  • JVM führt das Programm aus, indem es Bibliotheken und Dateien verwendet, die von Java Laufzeitumgebung.
  • JDK und JRE enthalten beide Java Virtuelle Maschine.
  • 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 Betriebssystem. 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 Programmierern die Erstellung von Kern Java Programme, 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 Java Programm kann zur Laufzeit aufrufen.
  • Compiler: Es ist ein Java Programm, das Textdateien von Entwicklern akzeptiert und kompiliert in Java Klassendatei. Dies ist die übliche Ausgabeform des Compilers, die enthält Java Bytecode. In Java, der primäre Compiler ist Javac.
  • Debugger: Debugger ist ein Java Programm, mit dem Entwickler testen und debuggen können Java Programme.
  • JavaDoc: JavaDoc ist eine Dokumentation von Sun Microsystems für die Java. JavaDoc kann verwendet werden, um API-Dokumentation in HTML-Dateien aus dem Quellprogramm zu generieren

Wie funktioniert JRE?

JRE-Funktionen

JRE-Funktionalität

JRE enthält eine Instanz von JVM, Bibliotheksklassen und Entwicklungstools. Sobald Sie schreiben und kompilieren Java Code, der Compiler generiert eine Klassendatei mit Bytecode.

Hier sind die wichtigen Komponenten von JRE:

  • Klassenlader: Der Klassenlader lädt verschiedene Klassen, die für die Ausführung eines Java Programm. JVM verwendet drei Klassenlader, den Bootstrap-Klassenlader, den Erweiterungs-Klassenlader und den System-Klassenlader.
  • 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 kompiliert haben Java nativer Code, es läuft auf einer bestimmten Hardwareplattform.

Auf diese Weise kann die Java Das Programm läuft 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. Er führt drei Hauptfunktionen aus: Laden, Verknüpfen und Initialisieren.

2) Methodenbereich

Der JVM-Methodenbereich speichert die Struktur klassenähnlicher Metadaten, den Code für Java Methoden und der konstante 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 Sprachstapel speichern lokale Variablen und ihre Teilergebnisse. Jeder Thread hat seinen eigenen JVM-Sprachstapel, der gleichzeitig mit dem Thread erstellt wird. Beim Aufrufen einer Methode wird ein neuer Frame erstellt und dieser wird entfernt, wenn der Methodenaufruf abgeschlossen ist.

5) PC-Register

PC-Register speichern die Adresse des Java virtuelle Maschinenanweisung, die gerade ausgeführt wird. In Java, jeder Thread hat sein eigenes 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 Java Code, der in einer JVM ausgeführt wird, um von Bibliotheken und nativen Anwendungen aufgerufen zu werden.

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 Langform von JDK lautet Java Entwicklungs-Kit. Die Langform von JRE lautet Java Laufzeitumgebung. Die Langform von JVM ist Java Virtuelle Maschine.
JDK ist ein Software Development Kit zur Entwicklung von Anwendungen in Java. Es handelt sich um ein Softwarepaket, das Folgendes bietet: Java Klassenbibliotheken mit den zum Ausführen erforderlichen Komponenten Java Code. JVM führt aus Java Bytecode und stellt eine Umgebung für dessen Ausführung bereit.
JDK ist plattformabhängig. JRE ist auch plattformabhängig. JVM ist plattformunabhä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.
Das JDK ermöglicht Entwicklern die Erstellung Java Programme, die von JRE und JVM ausgeführt und betrieben werden können. Die JRE ist der Teil von Java das die JVM erstellt. Es ist die Java Plattformkomponente, die 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.