Java Architecture kombiniert den Prozess der Kompilierung und Interpretation. Es erklärt die verschiedenen Prozesse bei der Formulierung von a . Bevor ich mit dem Thema beginne, möchte ich Ihnen die Agenda für diesen Artikel vorstellen.
Die folgenden Hinweise sind unsere Diskussionsthemen:
Beginnen wir damit, zu verstehen, was genau Java-Architektur ist.
Was ist Java-Architektur?
Hier erkläre ich Ihnen die Java-Architektur in einfachen Schritten.
- In Java gibt es einen Kompilierungs- und Interpretationsprozess.
- Der Code geschrieben in wird in Bytecodes konvertiert, was vom Java-Compiler durchgeführt wird.
- Die Bytecodes werden dann von der JVM in Maschinencode konvertiert.
- Der Maschinencode wird direkt von der Maschine ausgeführt.
Dieses Diagramm zeigt die interne Arbeitsweise eines Java-Codes oder genau der Java-Architektur!
Lassen Sie uns nun etwas tiefer in die Java-Architektur eintauchen und über verschiedene Themen sprechen .
Komponenten der Java-Architektur
Es gibt drei Hauptkomponenten der Java-Sprache: JVM, JRE und JDK .
Java Virtual Machine, Java Runtime Environment und Java Development Kit.
Lassen Sie mich jeden einzelnen einzeln erläutern:
Java virtuelle Maschine:
Schon mal was von WORA gehört? (Einmal schreiben, überall ausführen). Nun, Java-Anwendungen werden WORA genannt, weil sie einen Code auf jeder Plattform ausführen können. Dies erfolgt nur aufgrund von JVM. Die JVM ist eine Java-Plattformkomponente, die eine Umgebung zum Ausführen von Java-Programmen bereitstellt. JVM interpretiert den Bytecode in Maschinencode, der auf der Maschine ausgeführt wird, auf der das Java-Programm ausgeführt wird.
Kurz gesagt, JVM führt die folgenden Funktionen aus:
- Lädt den Code
- Überprüft den Code
- Führt den Code aus
- Bietet eine Laufzeitumgebung
Lassen Sie mich Ihnen nun die JVM-Architektur zeigen. Hier geht!
Erläuterung:
Klassenlader : Class Loader ist ein Subsystem von JVM. Es wird zum Laden von Klassendateien verwendet. Immer wenn wir das Java-Programm ausführen, lädt der Klassenlader es zuerst.
Klassenmethodenbereich : Es ist einer der Datenbereiche in JVM, in dem Klassendaten gespeichert werden. In diesem Bereich werden statische Variablen, statische Blöcke, statische Methoden und Instanzmethoden gespeichert.
Haufen : Beim Start der JVM wird ein Heap erstellt. Während der Ausführung der Anwendung kann die Größe zunehmen oder abnehmen.
Stapel : JVM-Stack wird als Thread-Stack bezeichnet. Es ist ein Datenbereich im JVM-Speicher, der für einen einzelnen Ausführungsthread erstellt wird. Der JVM-Stapel eines Threads wird vom Thread verwendet, um verschiedene Elemente zu speichern, d. H. Lokale Variablen, Teilergebnisse und Daten zum Aufrufen von Methoden und Rückgaben.
Native Stack : Es werden alle in Ihrer Anwendung verwendeten nativen Methoden zusammengefasst.
Ausführungs-Engine:
- JIT-Compiler
- Müllsammler
JIT-Compiler: Das Just-In-Time-Compiler (JIT) ist ein Teil der Laufzeitumgebung. Es hilft bei der Verbesserung der Leistung von Java-Anwendungen, indem Bytecodes zur Laufzeit zu Maschinencode kompiliert werden. Der JIT-Compiler ist standardmäßig aktiviert. Wenn eine Methode kompiliert wird, ruft die JVM den kompilierten Code dieser Methode direkt auf. Der JIT-Compiler kompiliert den Bytecode dieser Methode in Maschinencode und kompiliert ihn 'just in time' zur Ausführung.
Müllsammler: Wie der Name schon erklärt Müllsammler bedeutet, das nicht verwendete Material zu sammeln. Nun, in JVM wird diese Arbeit von der Garbage Collection erledigt. Es verfolgt jedes im JVM-Heap-Bereich verfügbare Objekt und entfernt unerwünschte Objekte.
Garbage Collector arbeitet in zwei einfachen Schritten, die als Mark und Sweep bekannt sind:
- Markieren - Hier identifiziert der Garbage Collector, welcher Speicher verwendet wird und welcher nicht
- Sweep - Entfernt Objekte, die während der Markierungsphase identifiziert wurden.
Java-Laufzeitumgebung:
Die JRE-Software erstellt eine Laufzeitumgebung, in der Java-Programme ausgeführt werden können. Die JRE ist das On-Disk-System, das Ihren Java-Code verwendet, ihn mit den erforderlichen Bibliotheken kombiniert und die JVM startet, um ihn auszuführen. Die JRE enthält Bibliotheken und Software, die von Ihren Java-Programmen zum Ausführen benötigt werden. JRE ist Teil von JDK (das wir später untersuchen werden), kann jedoch separat heruntergeladen werden.
Java Entwickler-Kit:
Das Java Development Kit (JDK) ist eine Softwareentwicklungsumgebung zum Entwickeln von Java-Anwendungen und -Applets. Es enthält JRE und mehrere Entwicklungstools, einen Interpreter / Loader (Java), einen Compiler (Javac), einen Archivierer (JAR), einen Dokumentationsgenerator (Javadoc) sowie ein weiteres Tool.
Der im Diagramm gezeigte blaue Bereich ist JDK. Lassen Sie mich nun die Entwicklungstools für Sie alle erläutern.
Java : Es ist der Launcher für alle Java-Anwendungen.
Javac : Konformer der Java-Programmiersprachen.
Javadoc : Es ist der API-Dokumentationsgenerator.
Krug : Erstellt und verwaltet alle JAR-Dateien.
Lassen Sie uns anhand der Java-Architektur verstehen, wie unabhängig die Java-Plattform ist.
Wie ist die Java-Plattform unabhängig?
Wann wird eine Programmiersprache als plattformunabhängig bezeichnet? Nun, genau dann, wenn es in Bezug auf seine Entwicklung und Kompilierung auf allen verfügbaren Betriebssystemen ausgeführt werden kann.
Jetzt, Java ist nur wegen des Bytecodes plattformunabhängig. Lassen Sie mich Ihnen sagen, was genau ein Bytecode ist. In einfachen Worten,
Bytecode ist ein Code der JVM, der maschinenverständlich ist.
Die Ausführung von Bytecode in Java beweist, dass es sich um eine plattformunabhängige Sprache handelt.
Hier zeige ich Ihnen die Schritte, die beim Ausführen von Java-Bytecode ausgeführt werden.
Nachfolgend finden Sie eine Erläuterung der Schritte:
sample.java → javac (sample. class) → JVM (sample.obj) → endgültige Ausgabe
Der erste Quellcode wird vom Java-Compiler verwendet und in eine .class-Datei konvertiert. Der Klassendateicode liegt in Bytecodeform vor und diese Klassendatei wird von JVM zum Konvertieren in eine Objektdatei verwendet. Danach können Sie die endgültige Ausgabe auf Ihrem Bildschirm sehen.
Jobbeschreibung des Linux-Systemadministrators
Lassen Sie uns im Artikel über die Java-Architektur das Konzept von verstehen JIT in Java .
JIT in Java
Der Just In Time-Compiler, allgemein als JIT bekannt, ist im Wesentlichen für die Leistungsoptimierung von Java-basierten Anwendungen zur Laufzeit verantwortlich. Die Leistung einer Anwendung hängt von einem Compiler ab.
Hier ist ein einfaches Diagramm, das Ihnen den internen Prozess zeigt.
Der JIT-Compiler kompiliert den Bytecode der Methode in Maschinencode und kompiliert ihn zur Ausführung „Just In Time“. Wenn eine Methode kompiliert wird, ruft die JVM den kompilierten Code dieser Methode direkt auf.
Tauchen wir tiefer ein:
Der Bytecode muss abhängig vom bereitgestellten Befehlssatz interpretiert oder zu den richtigen Maschinenanweisungen kompiliert werden. Diese können auch direkt ausgeführt werden, wenn die Befehlsarchitektur auf Bytecode basiert. Die Interpretation des Bytecodes wirkt sich auf die Ausführungsgeschwindigkeit aus.
Um die Leistung zu verbessern, interagieren JIT-Compiler zur Laufzeit mit der Java Virtual Machine (JVM) und kompilieren geeignete Bytecode-Sequenzen in nativen Maschinencode (siehe Abbildung). Bei Verwendung eines JIT-Compilers kann die Hardware den nativen Code ausführen, während die JVM dieselbe Bytecode-Sequenz wiederholt interpretiert und Overhead für den Übersetzungsprozess verursacht.
Damit habe ich gegen Ende dieses Artikels über Java-Architektur erreicht. Ich hoffe, dass die oben diskutierten Themen Ihren Java-Kenntnissen einen Mehrwert verleihen. Weitere Artikel!
Nachdem Sie die Grundlagen von Java verstanden haben, lesen Sie die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Der Java J2EE- und SOA-Schulungs- und Zertifizierungskurs von Edureka richtet sich an Studenten und Fachleute, 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.
Hast du eine Frage an uns? Bitte erwähnen Sie es im Kommentarbereich dieses Blogs „Java-Architektur und ihre Komponenten“. Wir werden uns so schnell wie möglich bei Ihnen melden.