Java Virtual Machine (JVM), skillnad JDK, JRE & JVM – Core Java

0 Comments

Java är en hög nivå programmeringsspråk. Ett program skrivet på hög nivå språk kan inte köras på någon maskin direkt. För det första måste det översättas till det speciella maskinspråket. Javac kompilatorn gör det här, det tar java-program (.java-fil som innehåller källkod) och översätter den till maskinkod (kallad byte-kod eller .klass fil).,

Java Virtual Machine (JVM) är en virtuell maskin som finns i den riktiga maskinen (din dator) och maskinspråket för JVM är byte-kod. Detta gör det lättare för kompilatorn eftersom det måste generera byte kod för JVM snarare än olika maskinkod för varje typ av maskin. JVM utför byte-koden som genereras av kompilatorn och producerar utdata. JVM är den som gör java-plattformen oberoende.

så nu förstod vi att JVM: s primära funktion är att utföra byte-koden som produceras av kompilatorn., Varje operativsystem har olika JVM, men utgången de producerar efter körning av byte-kod är densamma i alla operativsystem. Vilket innebär att byte-koden som genereras på Windows kan köras på Mac OS och vice versa. Det är därför vi kallar java som plattformsoberoende språk. Samma sak kan ses i diagrammet nedan:

så för att sammanfatta allt: Java Virtual machine (JVM) är den virtuella maskinen som körs på den faktiska maskinen (din dator) och kör Java byte-kod., JVM förstår inte Java källkod, det är därför vi måste ha javac kompilator som sammanställer *.java-filer för att erhålla *.klassfiler som innehåller byte koder förstås av JVM. JVM gör java portable (skriv en gång, kör var som helst). Varje operativsystem har olika JVM, men utgången de producerar efter körning av byte-kod är densamma i alla operativsystem.

JVM-arkitektur


Låt oss se hur JVM fungerar:
Klasslastare: klasslastaren läser .,klassfil och spara byte-koden i metodområdet.

Metodområde: det finns bara ett metodområde i en JVM som delas mellan alla klasser. Detta innehåller klassnivåinformation för varje .klassfil.

Heap: Heap är en del av JVM-minnet där objekt tilldelas. JVM skapar ett klassobjekt för varje .klassfil.

Stack: Stack är en också en del av JVM minne men till skillnad från Heap, det används för att lagra tillfälliga variabler.

PC-register: detta håller reda på vilken instruktion som har utförts och vilken som ska utföras., Eftersom instruktioner exekveras av trådar har varje tråd ett separat PC-register.

native Method stack: en infödd metod kan komma åt runtime-dataområdena i den virtuella maskinen.

Native Method interface: det gör det möjligt för java-kod att ringa eller anropas av inhemska program. Native applications är program som är specifika för hårdvara och operativsystem i ett system.

sophämtning: en klassinstans skapas uttryckligen av java-koden och efter användning förstörs den automatiskt av sophämtning för minneshantering.,

JVM Vs JRE Vs JDK

JRE: JRE är den miljö inom vilken java virtual machine körs. JRE innehåller Java virtual Machine (JVM), klassbibliotek och andra filer exklusive utvecklingsverktyg som kompilator och debugger.
vilket innebär att du kan köra koden i JRE men du kan inte utveckla och sammanställa koden i JRE.

JVM: som vi diskuterade ovan kör JVM programmet med hjälp av klass, bibliotek och filer som tillhandahålls av JRE.,

JDK: JDK är en superset av JRE, den innehåller allt som JRE har tillsammans med utvecklingsverktyg som kompilator, debugger etc.


Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *