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

0 Comments

Java er et høynivå programmeringsspråk. Et program som er skrevet i høynivå-språk ikke kan kjøres på hvilken som helst maskin direkte. For det første, det må være oversatt til det aktuelle maskinen språk. Den javac kompilatoren gjør denne tingen, det tar java-program (.java-fil som inneholder kildekoden) og oversetter den til maskinkode (omtalt som byte-kode eller .klasse-fil).,

Java Virtual Machine (JVM) er en virtuell maskin som er bosatt i den virkelige maskin (din maskin), og maskinen språk på JVM er byte-kode. Dette gjør det enklere for kompilatoren som det har for å generere byte-koden for JVM snarere enn annen maskin kode for hver type maskin. JVM utfører byte-koden generert av kompilatoren og produsere et resultat. JVM er den som gjør at java-plattform-uavhengig.

Så, nå har vi forstått at den primære funksjonen av JVM er å utføre byte-kode produsert av kompilatoren., Hvert operativsystem har forskjellige JVM, men produksjonen de produserer etter gjennomføring av byte-koden er den samme på tvers av alle operativsystemer. Noe som betyr at byte-koden generert på Windows kan kjøres på Mac OS og vice versa. Det er derfor vi kaller java som plattform uavhengig språk. Det samme kan sees i diagrammet nedenfor:

Så for å oppsummere Det hele: Java Virtual machine (JVM) er den virtuelle maskinen som kjører på selve maskinen (datamaskinen) og utfører Java byte-kode., Den JVM ikke forstår Java kildekode, det er derfor vi trenger å ha javac kompilator som kompilerer *.java-filene for å få *.klasse-filer som inneholder byte koder forstått av JVM. JVM gjør ccleaner (write once, run anywhere). Hvert operativsystem har forskjellige JVM, men produksjonen de produserer etter gjennomføring av byte-koden er den samme på tvers av alle operativsystemer.

JVM Arkitektur


Kan du se hvordan JVM fungerer:
Class Loader: klassen loader leser .,klasse-fil og lagre byte-koden i metode-området.

Metode Området: Det er bare én metode området i en JVM som er delt mellom alle klasser. Dette holder klasse nivå informasjon om hver enkelt .klasse-fil.

Heap: Heap er en del av JVM minne der gjenstander som er tilordnet. JVM skaper en Klasse objekt for hver .klasse-fil.

Stabel: Stack er en også en del av JVM-minnet, men i motsetning til Heap, det er brukt for lagring av midlertidige variabler.

PC Registrerer: Dette holder styr på hvilken instruksjon har blitt henrettet, og som kommer til å bli henrettet., Siden instruksjonene utføres av tråder, hver tråd har en egen PC registrere deg.

Native Metode stabel: En innfødt metoden kan få tilgang til runtime data områder av den virtuelle maskinen.

Native Metode grensesnitt: Det gjør at java-kode for å ringe eller bli kalt med native applikasjoner. Native applikasjoner er programmer som er spesifikke for hardware og OS av et system.

Garbage collection: En klasse forekomst er uttrykkelig opprettet av java-kode og etter bruk er det automatisk ødelagt av garbage collection for memory management.,

JVM Vs JRE Vs JDK

JRE: JRE er miljøet som java virtuell maskin som kjører. JRE inneholder Java virtual Machine(JVM), klasse biblioteker og andre filer unntatt utviklingsverktøy som kompilatoren og debugger.
Som betyr at du kan kjøre koden i JRE men du kan ikke utvikle seg og sette seg inn i koden i JRE.

JVM: Som vi har diskutert ovenfor, JVM kjører programmet ved hjelp av klasse, biblioteker og filer levert av JRE.,

JDK: JDK som er et supersett av JRE, det inneholder alt som JRE har sammen med utvikling av verktøy som kompilatoren, debugger etc.


Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *