Was Sie über Java Virtual Machine wissen sollten?



In diesem Blog wird das Konzept der virtuellen Java-Maschine mit den Komponenten ihrer Architektur und den wichtigsten Unterschieden zwischen JVM, JRE und JDK ausführlich behandelt

Sprache ist seit langer Zeit ein Riese in der IT-Branche. Es hat einige erstklassige Konzepte, die es besser machen als der Rest der Programmiersprache. Ein solches Konzept ist die Java Virtual Machine. In diesem Artikel lernen wir die verschiedenen Aspekte von kennen virtuelle Maschine im Detail. Im Folgenden werden die in diesem Blog behandelten Themen aufgeführt:

Was ist Java Virtual Machine?

Die virtuelle Java-Maschine ist eine plattformunabhängige abstrakte Maschine, die eine Laufzeitumgebung bereitstellt, in der der Java-Bytecode ausgeführt wird.





Es ist Teil der Java-Laufzeitumgebung, die den Java-Bytecode in eine maschinenlesbare Sprache konvertiert. Die Haupt Das, was wir in einem Java-Programm haben, wird tatsächlich von der Java Virtual Machine aufgerufen.

jvm - Java Virtual Machine - Edureka

Warum brauchen wir Java Virtual Machine?

Wir benötigen die Java Virtual Machine für die von ihr ausgeführten Aufgaben, die für jede Entwicklung mit Java äußerst notwendig sind. Im Folgenden sind einige Aufgaben aufgeführt, die die Java Virtual Machine ausführt.



  • Lädt den Code
  • Codeüberprüfung
  • Ausführung des Codes
  • Es bietet die Laufzeitumgebung für die Anwendungen
  • Speicherbereich
  • Registersatz
  • Stellt einen Garbage Collection-Heap bereit
  • Meldung der schwerwiegenden Fehler
  • Bietet eine Klasse Datei Format

Bei all diesen Vorgängen ist die Java Virtual Machine ein wesentlicher Bestandteil der Java-Entwicklung. Versuchen wir zu verstehen, wie es mithilfe der Java Virtual Machine-Architektur funktioniert.

Java Virtual Machine-Architektur

Die Architektur der virtuellen Java-Maschine ist ziemlich einfach. Sie verfügt unter anderem über einen Speicherbereich, einen Klassenlader und eine Ausführungs-Engine. Lassen Sie uns jeden von ihnen im Detail besprechen.

ClassLoader

Es ist ein Subsystem, das zum Laden von Klassendateien verwendet wird. Immer wenn wir ein Programm in Java ausführen, wird es zuerst vom ClassLoader geladen. Die Hauptfunktion umfasst das Initialisieren, Verknüpfen und Laden. Im Folgenden sind die in Java integrierten Klassenladeprogramme aufgeführt.



    • Bootstrap ClassLoader - Dies ist die Superklasse von Extension ClassLoader, die die Datei rt.jar lädt.

    • Erweiterung ClassLoader - Lädt die im Verzeichnis befindlichen JAR-Dateien.

    • System / Anwendung ClassLoader - Lädt die Klassendateien aus dem Klassenpfad.

    • Ladevorgang - Zunächst lädt der classLoader die .class-Dateien und generiert die entsprechenden Daten im Binärformat, das im Methodenbereich gespeichert wird.

    • Verknüpfungsvorgang - Nach dem Laden wird es vorbereitet, überprüft und aufgelöst. JVM weist den Speicher für Klassenvariablen zu und initialisiert den Speicher auf Standardwerte. Es stellt die Richtigkeit der .class-Datei sicher und wenn die Überprüfung fehlschlägt, wird der Laufzeitausnahmefehler angezeigt.

      Was ist Rmi in Java
    • Initialisierung - In dieser Phase werden allen statischen Variablen ihre im Codeblock definierten Werte zugewiesen.

JVM-Speicher

  • Methodenbereich - Es speichert die Strukturen für jede Klasse wie Code, Felddaten, Laufzeitkonstantenpool, Methodendaten usw.

  • Haufen - Objekte werden zur Laufzeit im Heap zugewiesen.

  • JVM-Sprachstapel - Es speichert lokale Variablen und Ergebnisse. Es spielt eine wichtige Rolle beim Aufrufen und Zurückgeben von Ergebnissen. Immer wenn eine Methode aufgerufen wird, wird ein Frame erstellt und zerstört, sobald der Aufruf endet oder abgeschlossen ist.

  • PC-Register - Es hat die Adresse oder den Speicherort der JVM-Anweisung, die ausgeführt wird.

    Ein wesentlicher Unterschied zwischen einem Hacker und einem ethischen Hacker ist:
  • Native Method Stacks - Alle in den Anwendungen verwendeten nativen Methoden sind in den nativen Methodenstapeln vorhanden.

  • Ausführungs-Engine - Eine Ausführungs-Engine enthält einen virtuellen Prozessor, einen Interpreter und einen JIT Compiler.

  • Native Methode Schnittstelle - - Es ist ein das bietet.

Nachdem wir die Architektur der JVM verstanden haben, werfen wir einen Blick auf den Ausführungsprozess und die Kompilierung von Code.

Ausführungsprozess

Die folgenden Schritte finden während der Ausführung und Kompilierung eines Java-Codes statt.

  • Die Hauptmethode wird in einer einzelnen Datei gespeichert, und andere Methoden werden in verschiedenen Dateien gespeichert.
  • Nach der Kompilierung werden entsprechende .class-Dateien bereitgestellt, die im Gegensatz zu C den Bytecode ohne Verknüpfung enthalten.
  • Während der Ausführung werden die Klassendateien mit dem Classloader auf etwaige Verstöße überprüft.
  • Danach wird der Bytecode in den entsprechenden nativen Maschinencode konvertiert. Dies ist auch der Grund, warum Java vergleichsweise langsamer ist.

Nachdem wir nun wissen, wie die Ausführung funktioniert, werfen wir einen Blick auf den Unterschied zwischen JDK, JRE und JVM.

Unterschied zwischen JDK, JRE und JVM

Im Folgenden sind einige wichtige Unterschiede zwischen aufgeführt JDK , JVM und JRE.

  1. JDK steht für Java Development Kit und JRE steht für Java Runtime Environment.
  2. JDK ist für die Entwicklung vorgesehen, während JRE für die Laufzeitumgebung vorgesehen ist.
  3. JVM ist ein wesentlicher Bestandteil von JDK und JRE, um ein Java-Programm auszuführen.
  4. JVM ist ein wesentlicher Bestandteil der Java-Programmierung und bietet Plattformunabhängigkeit.

Dies bringt uns zum Ende dieses Artikels, in dem wir die Java Virtual Machine im Detail kennengelernt haben. Ich hoffe, Sie sind mit allem klar, was Ihnen in diesem Tutorial mitgeteilt wurde.

Wenn Sie diesen Artikel über 'Java Virtual Machine' relevant fanden, lesen Sie die Edureka , ein vertrauenswürdiges Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt.

Wir sind hier, um Ihnen bei jedem Schritt auf Ihrer Reise zu helfen und einen Lehrplan zu erstellen, der für Studenten und Fachleute konzipiert ist, die Java-Entwickler werden möchten. Der Kurs soll Ihnen einen Vorsprung in die Java-Programmierung verschaffen und Sie sowohl für grundlegende als auch für fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring schulen.

Wenn Sie auf Fragen stoßen, können Sie alle Ihre Fragen im Kommentarbereich von „Java Virtual Machine“ stellen. Unser Team beantwortet diese gerne.