Unterschied zwischen JDK, JRE und JVM

Die Differenz zwischen JDK, JRE und JVM ist eine der beliebten Interviewfragen. Möglicherweise werden Sie auch gebeten, JDK vs. JRE vs. JVM zu erklären.

Unterschied zwischen JDK, JRE und JVM

JDK, JRE und JVM sind Kernkonzepte der Java-Programmiersprache. Diese Konzepte verwenden wir nicht direkt in der Programmierung. Als Java-Entwickler sollten wir jedoch über sie Bescheid wissen.

1. JDK

Java Development Kit, auch als JDK bekannt, ist die Kernkomponente der Java-Umgebung und bietet alle erforderlichen Tools, Ausführbaren und Binärdateien zum Kompilieren, Debuggen und Ausführen eines Java-Programms. JDK ist eine plattformspezifische Software, daher gibt es separate Installationsprogramme für Windows, Mac und Unix-Systeme. Man kann sagen, dass JDK die Übermenge von JRE ist, da es JRE mit Java-Compiler, Debugger und Kernklassen enthält.

2. JVM

JVM ist das Herzstück der Programmiersprache Java. Wenn wir ein Java-Programm ausführen, ist JVM dafür verantwortlich, den Bytecode in den maschinenspezifischen Code zu konvertieren. JVM ist auch plattformabhängig und bietet Kernfunktionen von Java wie Speicherverwaltung, Garbage Collection, Sicherheit usw. an. JVM ist anpassbar und wir können Java-Optionen verwenden, um sie anzupassen. Zum Beispiel kann man den JVM Speicher minimal und maximal zuweisen. JVM wird als virtuell bezeichnet, weil sie eine Schnittstelle bereitstellt, die nicht von dem zugrunde liegenden Betriebssystem und der Maschinenhardware abhängt. Diese Unabhängigkeit von der Hardware und dem Betriebssystem ermöglicht es, Java-Programme einmal zu schreiben und überall auszuführen.

3. JRE

JRE ist die Implementierung von JVM. Es bietet eine Plattform zur Ausführung von Java-Programmen. JRE besteht aus JVM, Java-Binärdateien und anderen Klassen, um jedes Programm erfolgreich auszuführen. JRE enthält keine Entwicklungstools wie den Java-Compiler, Debugger, JShell usw. Wenn Sie nur ein Java-Programm ausführen möchten, können Sie nur JRE installieren. Sie benötigen kein JDK, da keine Entwicklung oder Kompilierung des Java-Quellcodes erforderlich ist. Jetzt, da wir ein grundlegendes Verständnis von JDK, JVM und JRE haben, schauen wir uns die Unterschiede zwischen ihnen an.

JDK vs JRE vs JVM

Schauen wir uns einige wichtige Unterschiede zwischen JDK, JRE und JVM an.

  1. JDK dient dem Entwicklungsprozess, während JRE zum Ausführen von Java-Programmen verwendet wird.
  2. Sowohl JDK als auch JRE enthalten JVM, damit wir unser Java-Programm ausführen können.
  3. JVM ist das Herzstück der Java-Programmiersprache und bietet Plattformunabhängigkeit.

Just-in-time Compiler (JIT)

Manchmal finden Sie JIT neben JVM, JDK und JRE in Lehrbüchern. JIT ist Teil der JVM, der den Prozess der Umwandlung von Bytecode in maschinenspezifische Sprache optimiert. Es kompiliert ähnliche Bytecodes gleichzeitig und reduziert die Gesamtzeit für die Kompilierung von Bytecode in maschinenspezifische Sprache.

Source:
https://www.digitalocean.com/community/tutorials/difference-jdk-vs-jre-vs-jvm