Hvad du bør vide om Java Virtual Machine?



Denne blog vil dække konceptet med java virtual machine i detaljer med komponenterne i dens arkitektur og nøgleforskelle mellem JVM, JRE og JDK

sprog har været en kæmpe i it-branchen i meget lang tid. Det har nogle førsteklasses koncepter, der gør det bedre end resten af ​​programmeringssproget. Et sådant koncept er den virtuelle Java-maskine. I denne artikel vil vi lære om de forskellige aspekter af virtuel maskine i detaljer. Følgende er de emner, der diskuteres i denne blog:

Hvad er Java Virtual Machine?

Java virtuel maskine er en platformuafhængig abstrakt maskine, der giver et runtime-miljø, hvor Java-byte-koden udføres.





Det er en del af Java runtime-miljø, der konverterer Java-bytecode til maskinlæsbart sprog. Det vigtigste som vi har i et Java-program kaldes faktisk af den virtuelle Java-maskine.

jvm - java virtuel maskine - edureka

Hvorfor har vi brug for Java Virtual Machine?

Vi har brug for den virtuelle Java-maskine til de opgaver, den udfører, og som er yderst nødvendige for enhver udvikling, der involverer Java. Følgende er et par opgaver, som den virtuelle Java-maskine udfører.



  • Indlæser koden
  • Kodebekræftelse
  • Udførelse af koden
  • Det giver applikationernes kørselsmiljø
  • Hukommelsesområde
  • Registreringssæt
  • Giver en bunke til skraldespand
  • Rapportering af de fatale fejl
  • Giver en klasse filformat

Med alle disse operationer er den virtuelle Java-maskine en integreret del af Java-udviklingen. Lad os prøve at forstå, hvordan det fungerer ved hjælp af Java virtual machine-arkitekturen.

Java Virtual Machine Architecture

Java virtual machine-arkitektur er ret enkel, den har et hukommelsesområde, en klasselæsser og en eksekveringsmotor blandt andre komponenter. lad os diskutere hver af dem i detaljer.

ClassLoader

Det er et undersystem, der bruges til at indlæse klassefiler. Hver gang vi kører et program i java, indlæses det først af ClassLoader. hovedfunktionen inkluderer initialisering, sammenkædning og indlæsning. Følgende er de indbyggede classloaders i Java.



    • Bootstrap ClassLoader - Det er superklassen i Extension ClassLoader, der indlæser rt.jar-filen.

    • Udvidelse ClassLoader - Det indlæser jar-filerne i biblioteket.

    • System / applikation ClassLoader - Den indlæser klassefiler fra klassestien.

    • Indlæsning - Først indlæser classLoader .class-filerne og genererer de tilsvarende data i det binære format, som gemmes i metodeområdet.

    • Sammenkædning - Efter indlæsningen forbereder den, verificerer og gør en opløsning. JVM tildeler hukommelsen til klassevariabler og initialiserer hukommelsen til standardværdier. Det sikrer rigtigheden af ​​.class-filen, og når verifikationen mislykkes, får vi runtime-undtagelsesfejlen.

    • Initialisering - Alle statiske variabler tildeles med deres værdier defineret i kodeblokken i denne fase.

JVM-hukommelse

  • Metodeområde - Den gemmer strukturer for hver klasse som kode, feltdata, runtime konstant pool, metodedata osv.

  • Bunke - Objekter tildeles i løbet af bunken.

  • JVM sprogstakke - Den gemmer lokale variabler og resultater. Det spiller en vigtig rolle i at påkalde og returnere resultater. Hver gang en metode påberåbes, oprettes der en ramme, der ødelægges, så snart påkaldelsen slutter eller fuldføres.

  • PC-registre - Den har adressen eller placeringen af ​​JVMinstruction, der udføres.

  • Indfødte metode stakke - Alle de indfødte metoder, der anvendes i applikationerne, er til stede i de indfødte metodestakke.

  • Udførelsesmotor - En udførelsesmotor indeholder en virtuel processor, en tolk og en JIT kompilator.

  • Native metode Interface - Det er en det giver.

Nu hvor vi har forstået JVM's arkitektur, skal vi se på udførelsesprocessen og kompilering af kode.

Udførelsesproces

Følgende trin finder sted under udførelse og kompilering af en Java-kode.

  • Hovedmetoden er gemt i en enkelt fil, og andre metoder er gemt i forskellige filer.
  • Efter kompilering vil den give tilsvarende .class-filer, der har bytekoden uden nogen sammenkædning, i modsætning til C.
  • Under udførelsen verificeres klassefilerne for eventuelle overtrædelser ved hjælp af Classloader.
  • Herefter konverteres bytekoden til den tilsvarende native maskinkode. Dette er også grunden til, at Java er forholdsvis langsommere.

Nu hvor vi ved, hvordan udførelsen fungerer, skal vi se på forskellen mellem JDK, JRE og JVM.

Forskellen mellem JDK, JRE og JVM

Følgende er et par vigtige forskelle mellem JDK , JVM og JRE.

  1. JDK står for Java-udviklingssæt, og JRE står for Java runtime-miljø.
  2. JDK er til udvikling, mens JRE er til driftstidsmiljøet.
  3. JVM er en vigtig del af JDK og JRE til at køre ethvert Java-program.
  4. JVM er en integreret del af Java-programmering og giver platformuafhængighed.

Dette bringer os til slutningen af ​​denne artikel, hvor vi har lært om den virtuelle Java-maskine i detaljer. Jeg håber, du er klar over alt, hvad der er delt med dig i denne vejledning.

Hvis du fandt denne artikel på “Java Virtual Machine” relevant, skal du tjekke Edureka , en betroet online læringsvirksomhed med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden.

Vi er her for at hjælpe dig med hvert trin på din rejse og komme med en læseplan, der er designet til studerende og fagfolk, der ønsker at være Java-udvikler. Kurset er designet til at give dig et forspring i Java-programmering og træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

forskel mellem git og github

Hvis du støder på spørgsmål, er du velkommen til at stille alle dine spørgsmål i kommentarfeltet i “Java Virtual Machine”, og vores team vil med glæde svare.