Vad du borde veta om Java Virtual Machine?



Den här bloggen kommer att täcka begreppet Java Virtual Machine i detalj med komponenterna i dess arkitektur och viktiga skillnader mellan JVM, JRE och JDK

språk har varit en jätte inom IT-branschen under mycket lång tid. Det har några förstklassiga begrepp som gör det bättre än resten av programmeringsspråket. Ett sådant koncept är den virtuella Java-maskinen. I den här artikeln kommer vi att lära oss om de olika aspekterna av virtuell maskin i detalj. Följande ämnen diskuteras i den här bloggen:

Vad är Java Virtual Machine?

Java virtual machine är en plattformsoberoende abstrakt maskin som ger en runtime-miljö där Java-byte-koden körs.





Det är en del av Java runtime-miljö som konverterar Java-bytecode till maskinläsbart språk. Den huvudsakliga som vi har i ett Java-program kallas faktiskt av den virtuella Java-maskinen.

jvm - java virtuell maskin - edureka

Varför behöver vi Java Virtual Machine?

Vi behöver den virtuella Java-maskinen för de uppgifter som den utför som är extremt nödvändiga för all utveckling som involverar Java. Följande är några uppgifter som Java virtuella maskin gör.



  • Läser in koden
  • Kodverifiering
  • Utförande av koden
  • Det ger applikationens körtidsmiljö
  • Minneområde
  • Registeruppsättning
  • Ger en skräpuppsamlingshög
  • Rapportering av de allvarliga felen
  • Ger en klass filformat

Med alla dessa operationer är den virtuella Java-maskinen en integrerad del av Java-utvecklingen. Låt oss försöka förstå hur det fungerar med hjälp av Java-virtuella maskinarkitekturen.

Java Virtual Machine Architecture

Java virtuell maskinarkitektur är ganska enkel, den har ett minnesområde, en klasslastare och en exekveringsmotor bland andra komponenter. låt oss diskutera var och en av dem i detalj.

typer av ramar i selen

ClassLoader

Det är ett delsystem som används för att ladda klassfiler. När vi kör ett program i java laddas det först av ClassLoader. huvudfunktionen inkluderar initialisering, länkning och laddning. Följande är de inbyggda klassladdarna i Java.



    • Bootstrap ClassLoader - Det är superklassen för Extension ClassLoader som laddar rt.jar-filen.

    • Förlängning ClassLoader - Den laddar jar-filerna i katalogen.

    • System / applikation ClassLoader - Det laddar klassfilerna från klassstigen.

    • Lastning - Först laddar classLoader .class-filerna och genererar motsvarande data i binärt format som sparas i metodområdet.

    • Länka operation - Efter laddning förbereder, verifierar och gör upplösning. JVM tilldelar minnet för klassvariabler och initialiserar minnet till standardvärden. Det säkerställer riktigheten i .class-filen och när verifieringen misslyckas får vi undantagsfelet för runtime.

    • Initiering - Alla statiska variabler tilldelas med deras värden definierade i kodblocket i denna fas.

JVM-minne

  • Metodområde - Den lagrar strukturerna för varje klass som kod, fältdata, runtime konstant pool, metoddata etc.

  • Högen - Objekt tilldelas vid körningen i högen.

  • JVM språkstaplar - Den lagrar lokala variabler och resultat. Det spelar en viktig roll för att åberopa och returnera resultat. När en metod åberopas skapas en ram som förstörs så snart anropet slutar eller slutförts.

  • PC-register - Den har adressen eller platsen för JVMinstruction som körs.

    få datum från sträng Java
  • Native Method Stacks - Alla de inbyggda metoderna som används i applikationerna finns i de inbyggda metodstaplarna.

  • Exekveringsmotor - En exekveringsmotor innehåller en virtuell processor, en tolk och en JIT kompilator.

  • Native Method Gränssnitt - Det är en som ger.

Nu när vi har förstått JVM: s arkitektur, låt oss ta en titt på exekveringsprocessen och sammanställningen av kod.

Utförandeprocess

Följande steg äger rum under körning och kompilering av en Java-kod.

  • Huvudmetoden lagras i en enda fil och andra metoder lagras i olika filer.
  • Efter sammanställningen kommer den att tillhandahålla motsvarande .klassfiler som kommer att ha bytekoden utan någon länkning, till skillnad från C.
  • Under körningen verifieras klassfilerna för eventuella överträdelser med Classloader.
  • Efter detta konverteras bytekoden till motsvarande inbyggd maskinkod. Detta är också anledningen till att Java är relativt långsammare.

Nu när vi vet hur körningen fungerar, låt oss ta en titt på skillnaden mellan JDK, JRE och JVM.

vad är en primär nyckelbegränsning

Skillnaden mellan JDK, JRE och JVM

Följande är några viktiga skillnader mellan JDK , JVM och JRE.

  1. JDK står för Java-utvecklingssats och JRE står för Java runtime-miljö.
  2. JDK är för utveckling medan JRE är för körtidsmiljön.
  3. JVM är en viktig del av JDK och JRE för att köra alla Java-program.
  4. JVM är en integrerad del av Java-programmering och ger plattformsoberoende.

Detta tar oss till slutet av den här artikeln där vi har lärt oss om den virtuella Java-maskinen i detalj. Jag hoppas att du är tydlig med allt som har delats med dig i denna handledning.

Om du tyckte att den här artikeln på “Java Virtual Machine” var relevant, kolla in Edureka , ett pålitligt online-lärande företag med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen.

Vi är här för att hjälpa dig med varje steg på din resa och komma med en läroplan som är utformad för studenter och yrkesverksamma som vill vara Java-utvecklare. Kursen är utformad för att ge dig ett försprång till Java-programmering och träna dig för både kärn- och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Spring.

Om du stöter på några frågor är du välkommen att ställa alla dina frågor i kommentarsektionen i 'Java Virtual Machine' så svarar vårt team gärna.