Hva du bør vite om Java Virtual Machine?



Denne bloggen vil dekke konseptet med virtuell java-maskin i detalj med komponentene i arkitekturen og viktige forskjeller mellom JVM, JRE og JDK

språk har vært en gigant i IT-bransjen i veldig lang tid. Den har noen førsteklasses konsepter som gjør det bedre enn resten av programmeringsspråket. Et slikt konsept er den virtuelle Java-maskinen. I denne artikkelen vil vi lære om de forskjellige aspektene av virtuell maskin i detalj. Følgende er temaene som er diskutert i denne bloggen:

Hva er Java Virtual Machine?

Java virtual machine er en plattformuavhengig abstrakt maskin som gir et kjøretidsmiljø der Java-byte-koden kjøres.





Det er en del av Java kjøretidsmiljø som konverterer Java bytecode til maskinlesbart språk. Hoved som vi har i et Java-program, kalles faktisk av den virtuelle Java-maskinen.

hashmap-implementering i java-eksempel

jvm - java virtuell maskin - edureka

Hvorfor trenger vi Java Virtual Machine?

Vi trenger den virtuelle Java-maskinen for oppgavene den utfører, og som er ekstremt nødvendig for enhver utvikling som involverer Java. Følgende er noen få oppgaver som Java virtuell maskin gjør.



  • Laster inn koden
  • Kodeverifisering
  • Utførelse av koden
  • Det gir kjøretidsmiljøet for applikasjonene
  • Minneområde
  • Registreringssett
  • Tilbyr en søppeloppsamlingsbunke
  • Rapportering av de fatale feilene
  • Gir en klasse filformat

Med alle disse operasjonene er den virtuelle Java-maskinen en integrert del av Java-utviklingen. La oss prøve å forstå hvordan det fungerer ved hjelp av Java virtuell maskinarkitektur.

Java Virtual Machine Architecture

Java virtuell maskinarkitektur er ganske enkel, den har et minneområde, en klasselaster og en kjøremotor blant andre komponenter. la oss diskutere hver av dem i detalj.

ClassLoader

Det er et delsystem som brukes til å laste inn klassefiler. Hver gang vi kjører et program i java, lastes det først av ClassLoader. hovedfunksjonen inkluderer initialisering, lenking og lasting. Følgende er de innebygde klasselasterne i Java.



    • Støvelhempe ClassLoader - Det er superklassen i Extension ClassLoader som laster rt.jar-filen.

    • Utvidelse ClassLoader - Den laster jar-filene i katalogen.

    • System / applikasjon ClassLoader - Den laster klassefilene fra klassestien.

    • Lasting - Først laster classLoader .class-filene og genererer tilsvarende data i det binære formatet som er lagret i metodeområdet.

    • Koblingsoperasjon - Etter lasting forbereder, verifiserer og tar oppløsning. JVM tildeler minnet for klassevariabler og initialiserer minnet til standardverdier. Det sikrer korrektheten til .class-filen, og når bekreftelsen mislykkes, får vi runtime-unntaksfeilen.

    • Initialisering - Alle statiske variabler tildeles med verdiene definert i kodeblokken i denne fasen.

JVM-minne

  • Metodeområde - Den lagrer strukturene for hver klasse som kode, feltdata, kjøretids konstant basseng, metodedata, etc.

  • Haug - Objekter tildeles på kjøretiden i dyngen.

  • JVM språkstabler - Den lagrer lokale variabler og resultater. Det spiller en viktig rolle i å påkalle og returnere resultater. Hver gang en metode påkalles, opprettes en ramme som ødelegges så snart påkallingen avsluttes eller fullføres.

  • PC-registre - Den har adressen eller plasseringen til JVMinstruction som blir utført.

  • Native Method Stacks - Alle de innfødte metodene som brukes i applikasjonene, er til stede i de innfødte metodestakkene.

  • Utførelsesmotor - En utførelsesmotor inneholder en virtuell prosessor, en tolk og en JIT kompilator.

  • Innfødt Metode Grensesnitt - Det er en som gir.

Nå som vi har forstått JVMs arkitektur, la oss ta en titt på utførelsesprosessen og kompilering av kode.

Utførelsesprosess

Følgende trinn finner sted mens du utfører og kompilerer en Java-kode.

  • Hovedmetoden lagres i en enkelt fil, og andre metoder lagres i forskjellige filer.
  • Etter kompilering vil den gi tilsvarende .class-filer som vil ha byte-koden uten kobling, i motsetning til C.
  • Under kjøringen bekreftes klassefilene for brudd ved bruk av Classloader.
  • Etter dette blir bytekoden konvertert til den tilsvarende innfødte maskinkoden. Dette er også grunnen til at Java er relativt tregere.

Nå som vi vet hvordan utførelsen fungerer, la oss se på forskjellen mellom JDK, JRE og JVM.

Forskjellen mellom JDK, JRE og JVM

Følgende er noen viktige forskjeller mellom JDK , JVM og JRE.

  1. JDK står for Java-utviklingssett, og JRE står for Java runtime-miljø.
  2. JDK er for utvikling, mens JRE er for kjøretidsmiljøet.
  3. JVM er en viktig del av JDK og JRE for å kjøre hvilket som helst Java-program.
  4. JVM er en integrert del av Java-programmering og gir plattformuavhengighet.

Dette bringer oss til slutten av denne artikkelen hvor vi har lært om den virtuelle Java-maskinen i detalj. Jeg håper du er klar med alt som har blitt delt med deg i denne opplæringen.

Hvis du fant denne artikkelen på “Java Virtual Machine” relevant, kan du sjekke ut Edureka , et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden.

Vi er her for å hjelpe deg med hvert trinn på reisen og komme med en læreplan som er designet for studenter og fagpersoner som ønsker å være Java-utvikler. Kurset er designet for å gi deg et forsprang i Java-programmering og trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

forskjell mellom utvidelser og redskaper i java

Hvis du kommer over noen spørsmål, er du velkommen til å stille alle spørsmålene dine i kommentarfeltet i “Java Virtual Machine”, og teamet vårt svarer gjerne.