JDK vs JRE vs JVM: Hauptunterschiede
Was ist JDK?
JDK ist eine Softwareentwicklungsumgebung zum Erstellen von Applets und Java-Anwendungen. Die vollständige Form von JDK ist Java Development Kit. Java-Entwickler können es unter Windows, MacOS, Solaris und Linux verwenden. JDK hilft ihnen beim Codieren und Ausführen von Java-Programmen. Es ist möglich, mehr als eine JDK-Version auf demselben Computer zu installieren.
In diesem Tutorial lernen Sie:
- Was ist JDK?
- Was ist JRE?
- Was ist JVM?
- Warum JDK verwenden?
- Warum JRE verwenden?
- Warum JVM?
- Funktionen von JDK
- Funktionen von JRE
- Funktionen von JVM
- Wie funktioniert JDK?
- Wie funktioniert JRE?
- Wie funktioniert JVM?
- Unterschied zwischen JDK, JRE und JVM
Was ist JRE?
JRE ist ein Teil einer Software, mit der andere Software ausgeführt werden kann . Es enthält die Klassenbibliotheken, die Loader-Klasse und die JVM. In einfachen Worten, wenn Sie ein Java-Programm ausführen möchten, benötigen Sie JRE. Wenn Sie kein Programmierer sind, müssen Sie kein JDK installieren, sondern nur JRE, um Java-Programme auszuführen. Alle JDK-Versionen werden jedoch mit Java Runtime Environment geliefert, sodass Sie die JRE nicht separat herunterladen und in Ihrem installieren müssen PC. Die vollständige Form von JRE ist Java Runtime Environment.
Was ist JVM?
JVM ist eine Engine, die bereitstellt Eine Laufzeitumgebung zum Ausführen des Java-Codes oder von Java-Anwendungen. Sie konvertiert Java-Bytecode in die Maschinensprache. JVM ist Teil der Java Run Environment (JRE). Sie kann nicht separat heruntergeladen und installiert werden. Um JVM zu installieren, müssen Sie JRE installieren Die vollständige Form von JVM ist Java Virtual Machine.
In vielen anderen Programmiersprachen erstellt der Compiler Maschinencode für ein bestimmtes System. Java Compiler erstellt jedoch Code für eine virtuelle Maschine, die als JVM bezeichnet wird.
WICHTIGE UNTERSCHIEDE
- JDK ist ein Softwareentwicklungskit, während JRE ein Softwarepaket ist, mit dem Java-Programme ausgeführt werden können. 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 auch plattformabhängig, JVM ist jedoch plattformunabhängig.
- JDK enthält Tools zum Entwickeln, Debuggen usw. JRE enthält Klassenbibliotheken und andere unterstützende Dateien, während Software Entwicklungstools sind in JVM nicht enthalten.
- JDK wird mit dem Installationsprogramm geliefert. Andererseits enthält JRE nur die Umgebung zum Ausführen von Quellcode, während JVM sowohl in der Software JDK als auch in JRE gebündelt ist.
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 sie auszuführen.
- Es enthält einen Compiler, einen Java-Anwendungsstarter, einen Appletviewer usw.
- Der Compiler konvertiert in Java geschriebenen Code in Bytecode.
- Der Java Application Launcher öffnet eine JRE, lädt die erforderliche Klasse und führt ihre Hauptmethode aus.
Warum JRE verwenden?
Hier sind die Wichtige 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, einen 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 zur Ausführung von Java Quellcode.
- Es verfügt über zahlreiche Bibliotheken, Tools und Frameworks.
- Sobald Sie das 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 einfache Maschinensprache konvertiert. Daher wird es als reguläre Anwendung schneller ausgeführt.
Funktionen von JDK
Hier sind die wichtigen Funktionen von JDK:
- Sie können mehrere Erweiterungen in einem einzigen Catch-Block verwalten.
- JDK enthält alle Funktionen von JRE.
- Es enthält Entwicklungstools wie einen Compiler, einen Debugger usw.
- JDK bietet die Umgebung zum Entwickeln und Ausführen von Java-Quellcode.
- Es kann unter Windows-, Unix- und Mac-Betriebssystemen installiert werden.
- Der Diamond-Operator kann verwendet werden, um eine generische Typschnittstelle anzugeben, anstatt die genaue zu schreiben.
Funktionen 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, das Java-Programm jedoch nicht schreiben und kompilieren.
- Es enthält Integrationsbibliotheken wie Java Database Connectivity (JDBC) und Remote Method Aufruf (RMI), Java Naming and Directory Interface (JNDI) und mehr.
- JRE verfügt über einen Client für virtuelle JVM- und Java HotSpot-Maschinen.
Funktionen von JVM
Hier sind die wichtigen Funktionen von JVM:
- Sie können Anwendungen in einer Cloud-Umgebung ausführen oder auf Ihrem Gerät.
- Java Virtual Machine konvertiert Bytecode in den 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.
- Das Java-Programm kann zeilenweise ausgeführt werden, daher wird es auch als Interpreter bezeichnet.
- JVM kann beispielsweise leicht angepasst werden. Sie können ihm minimalen und maximalen Speicher zuweisen.
- Es ist unabhängig von Hardware und Betriebssystem. Sie können also ein Java-Programm einmal schreiben und überall ausführen.
Wie funktioniert JDK?
Hier sind die wichtigen Komponenten von JDK:
- JDK und JRE: Mit dem JDK können Programmierer Java-Kernprogramme erstellen, die von der ausgeführt werden können JRE, einschließlich JVM und Klassenbibliotheken.
- Klassenbibliotheken: Dies ist eine Gruppe dynamisch ladbarer Bibliotheken, die Java-Programme zur Laufzeit aufrufen können.
- Compiler: Es handelt sich um ein Java-Programm, das Textdateien von Entwicklern akzeptiert und in diese kompiliert Java-Klassendatei. Dies ist die übliche Ausgabeform des Compilers, die Java-Bytecode enthält. In Java ist der primäre Compiler Javac.
- Debugger: Debugger ist ein Java-Programm, mit dem Entwickler Java-Programme testen und debuggen können.
- JavaDoc: JavaDoc ist eine Dokumentation von Sun Microsystems für Java. JavaDoc kann zum Generieren von API-Dokumentation in HTML-Dateien aus dem Quellprogramm verwendet werden.
Wie funktioniert JRE?
JRE verfügt über eine JVM-Instanz, Bibliotheksklassen und Entwicklungstools. Sobald Sie Java-Code geschrieben und kompiliert haben, 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, damit der Code den Interpreter nicht stört.
- Interpreter: Sobald die Klassen geladen und der Code überprüft wurde, liest der Interpreter den Code zeilenweise.
- Laufzeit: Laufzeit ist ein System, das hauptsächlich für die Programmierung von verwendet wird Beschreiben des Zeitraums, in dem ein bestimmtes Programm ausgeführt wird.
- Hardware: Sobald Sie nativen Java-Code kompiliert haben, wird er auf einer bestimmten Hardwareplattform ausgeführt.
Auf diese Weise Das Java-Programm wird in JRE ausgeführt.
Wie funktioniert JVM?
Hier sind die wichtigen Komponenten von JVM:
1) Klassenlader
Der Klassenlader ist ein Subsystem, für das verwendet wird Laden von Klassendateien. Es führt drei Hauptfunktionen aus, nämlich. Laden, Verknüpfen und Initialisieren.
2) Methodenbereich
Der JVM-Methodenbereich speichert die Struktur einer Klasse wie Metadaten, den Code für Java-Methoden und den konstanten Laufzeitpool.
3) Heap
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 deren Teilergebnisse. Jeder Thread verfügt über einen eigenen JVM-Sprachstapel, der gleichzeitig mit der Erstellung des Threads erstellt wird. Beim Aufrufen der Methode wird ein neuer Frame erstellt und nach Abschluss des Methodenaufrufs entfernt.
5) PC-Register
PC-Register speichern die Adresse des Java Virtual Machine-Befehls, der gerade ausgeführt wird. In Java hat jeder Thread ein eigenes PC-Register.
6) Native Methodenstapel
Native Methodenstapel enthalten die Anweisung für nativen Code, abhängig von der nativen Bibliothek. Es reserviert Speicher auf nativen Heaps oder verwendet einen beliebigen Stapeltyp.
7) Execution Engine
Dies ist eine Art von Software, mit der Software, Hardware oder komplette Systeme getestet werden. Die Testausführungs-Engine enthält niemals Informationen über das getestete Produkt.
8) Native Method-Schnittstelle
Die Native Method-Schnittstelle ist ein Programmierframework. Damit kann Java-Code, der in einer JVM ausgeführt wird, von Bibliotheken und nativen Anwendungen aufgerufen werden.
9) Native Method Libraries
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 und JRE und 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 Softwareentwicklungskit zum Entwickeln von Anwendungen in Java. | Es handelt sich um ein Softwarepaket, das Java-Klassenbibliotheken die erforderlichen Komponenten zum Ausführen von Java-Code bereitstellt. | JVM führt Java-Bytecode aus und bietet eine Umgebung für die Ausführung. |
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 in JVM nicht 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 ist 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, gebündelt in Software JDK und JRE. |