Wat zijn de componenten van Java-architectuur?



Java-architectuur combineert het proces van compilatie en interpretatie. In dit artikel vertel ik je over de verschillende onderdelen van Java Architectuur

Java-architectuur combineert het proces van compilatie en interpretatie. Het legt de verschillende processen uit die betrokken zijn bij het formuleren van een . Voordat ik met het onderwerp begin, wil ik u de agenda voor dit artikel voorstellen.

Onderstaande tips zullen onze gespreksonderwerpen zijn:





Laten we beginnen met te begrijpen wat Java-architectuur precies is?



hoe je een dynamische array maakt in java

Wat is Java-architectuur?

Hier zal ik u de Java-architectuur in eenvoudige stappen uitleggen.

  • In Java is er een proces van compilatie en interpretatie.
  • De code geschreven in , wordt omgezet in bytecodes wat wordt gedaan door de Java Compiler.
  • De bytecodes worden vervolgens door de JVM omgezet in machinecode.
  • De machinecode wordt rechtstreeks door de machine uitgevoerd.

Dit diagram illustreert de interne werking van een Java-code, of juist Java-architectuur!



JVM - Java-architectuur - EdurekaLaten we nu wat dieper graven in de Java-architectuur en over verschillende praten .

Onderdelen van Java-architectuur

Er zijn drie hoofdcomponenten van de Java-taal: JVM, JRE en JDK .

Java Virtual Machine, Java Runtime Environment en Java Development Kit.

Ik zal ze allemaal een voor een uitwerken:

Java virtuele machine:

Ooit gehoord van WORA? (Schrijf een keer Run Anywhere). Nou, Java-applicaties worden WORA genoemd vanwege hun vermogen om een ​​code op elk platform uit te voeren. Dit wordt alleen gedaan vanwege JVM. De JVM is een Java-platformcomponent die een omgeving biedt voor het uitvoeren van Java-programma's. JVM interpreteert de bytecode in machinecode die wordt uitgevoerd op de machine waarop het Java-programma wordt uitgevoerd.

Kortom, JVM voert de volgende functies uit:

  • Laadt de code
  • Verifieert de code
  • Voert de code uit
  • Biedt een runtime-omgeving

Laat me je nu de JVM-architectuur laten zien. Hier gaat!

Uitleg:

Klasse Loader : Class loader is een subsysteem van JVM. Het wordt gebruikt om klassebestanden te laden. Elke keer dat we het Java-programma draaien, laadt de class loader het eerst.

Klasse methode gebied : Het is een van de gegevensgebieden in JVM, waarin klassegegevens worden opgeslagen. Statische variabelen, statische blokken, statische methoden, instantiemethoden worden in dit gebied opgeslagen.

Hoop : Er wordt een heap gemaakt wanneer de JVM opstart. Het kan in omvang toenemen of afnemen terwijl de applicatie wordt uitgevoerd.

Stapel : JVM-stack staat bekend als een thread-stack. Het is een gegevensgebied in het JVM-geheugen dat is gemaakt voor een enkele uitvoeringsthread. De JVM-stapel van een thread wordt door de thread gebruikt om verschillende elementen op te slaan, d.w.z. lokale variabelen, gedeeltelijke resultaten en gegevens voor het aanroepen van methode en retouren.

Native stapel : Het omvat alle native methoden die in uw toepassing worden gebruikt.

Uitvoeringsmotor:

  • Jit-compiler
  • Vuilnisman

JIT-compiler: De Just-In-Time (JIT) -compiler maakt deel uit van de runtime-omgeving. Het helpt bij het verbeteren van de prestaties van Java-applicaties door bytecodes te compileren naar machinecode tijdens runtime. De JIT-compiler is standaard ingeschakeld. Wanneer een methode is gecompileerd, roept de JVM de gecompileerde code van die methode rechtstreeks aan. De JIT-compiler compileert de bytecode van die methode in machinecode, en compileert deze “just in time” om uit te voeren.

Vuilnisman: Zoals de naam al zegt Vuilnisman middelen om het ongebruikte materiaal te verzamelen. Nou, in JVM wordt dit werk gedaan door Garbage collection. Het volgt elk object dat beschikbaar is in de JVM-heapruimte en verwijdert ongewenste objecten.
Garbage collector werkt in twee eenvoudige stappen die bekend staan ​​als Mark and Sweep:

  • Markeer - het is waar de garbage collector identificeert welk stukje geheugen in gebruik is en welke niet
  • Sweep - het verwijdert objecten die zijn geïdentificeerd tijdens de 'mark' -fase.

Java Runtime-omgeving:

De JRE-software bouwt een runtime-omgeving waarin Java-programma's kunnen worden uitgevoerd. De JRE is het systeem op de schijf dat uw Java-code gebruikt, deze combineert met de benodigde bibliotheken en de JVM start om deze uit te voeren. De JRE bevat bibliotheken en software die nodig zijn om uw Java-programma's uit te voeren. JRE is een onderdeel van JDK (dat we later zullen bestuderen) maar kan afzonderlijk worden gedownload.

wat is procedure in sql

Java-ontwikkelingskit:

De Java Development Kit (JDK) is een software-ontwikkelomgeving die wordt gebruikt om Java-applicaties en applets te ontwikkelen. Het bevat JRE en verschillende ontwikkeltools, een interpreter / loader (java), een compiler (javac), een archiver (jar), een documentatiegenerator (javadoc) vergezeld van een andere tool.

Het blauwe gebied dat in het diagram wordt weergegeven, is JDK. Laat me nu de ontwikkelingstools voor jullie allemaal uitwerken.

Java : het is de launcher voor alle Java-applicaties.
javac : complier van de java programmeertalen.
javadoc : het is de API-documentatiegenerator.
pot : maakt en beheert alle JAR-bestanden.

Laten we verder gaan met Java-architectuur, laten we begrijpen hoe het Java-platform onafhankelijk is?

Hoe is het Java-platform onafhankelijk?

Wanneer wordt een programmeertaal platformonafhankelijk genoemd? Nou ja, als en alleen als het kan draaien op alle beschikbare besturingssystemen met betrekking tot de ontwikkeling en samenstelling ervan.
Nu, Java is platformonafhankelijk alleen vanwege de bytecode. Laat me je vertellen wat precies een bytecode is? In simpele termen,
Bytecode is een code van de JVM die machinaal te begrijpen is.
Bytecode-uitvoering in Java bewijst dat het een platformonafhankelijke taal is.
Hier zal ik u de stappen laten zien die betrokken zijn bij het proces van het uitvoeren van java-bytecodes.

Hieronder vindt u de uitleg van de betrokken stappen:

sample.java → javac (sample. class) → JVM (sample.obj) → uiteindelijke uitvoer

De eerste broncode wordt gebruikt door de java-compiler en wordt geconverteerd in een .class-bestand. De klassebestandcode is in bytecodevorm en dat klassebestand wordt door JVM gebruikt om naar een objectbestand te converteren. Daarna kunt u de uiteindelijke uitvoer op uw scherm zien.

Laten we verder gaan in het Java-architectuurartikel, laten we het concept van JIT in Java .

JIT in Java

Just In Time-compiler, algemeen bekend als JIT, is in principe verantwoordelijk voor prestatie-optimalisatie van Java-gebaseerde applicaties tijdens runtime. De performance van een applicatie is afhankelijk van een compiler.
Hier is een eenvoudig diagram dat u het interne proces laat zien.

c ++ ga naar

JIT Compiler - Java-architectuur - Edureka

De JIT-compiler compileert de bytecode van de methode in machinecode, en compileert deze 'Just In Time' om uit te voeren. Wanneer een methode is gecompileerd, roept de JVM de gecompileerde code van die methode rechtstreeks aan.
Laten we dieper gaan:
De bytecode moet worden geïnterpreteerd of gecompileerd volgens de juiste machine-instructies, afhankelijk van de geleverde instructieset. Deze kunnen ook direct worden uitgevoerd als de instructiearchitectuur is gebaseerd op bytecode. Het interpreteren van de bytecode heeft invloed op de snelheid van uitvoering.
Om de prestaties te verbeteren, communiceren JIT-compilers tijdens runtime met de Java Virtual Machine (JVM) en compileren geschikte bytecode-reeksen in native machinecode (zoals weergegeven in het diagram). Bij gebruik van een JIT-compiler kan de hardware de native code uitvoeren, in vergelijking met het herhaaldelijk interpreteren van dezelfde bytecode door de JVM en overhead voor het vertaalproces.

Hiermee ben ik aan het einde van dit artikel over Java-architectuur gekomen. Ik hoop dat de hierboven besproken onderwerpen een toegevoegde waarde hebben voor je Java-kennis. Blijf op de hoogte voor meer artikelen!

Nu u de basisprincipes van Java begrijpt, kunt u het door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. De training- en certificeringcursus Java J2EE en SOA van Edureka is bedoeld voor studenten en professionals die Java Developer willen worden. De cursus is bedoeld om u een voorsprong te geven in het programmeren van Java en u te trainen in zowel kern- als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Vermeld het in het commentaargedeelte van deze blog over 'Java-architectuur en zijn componenten' en we nemen zo snel mogelijk contact met u op.