Hvad er JVM?
JVM er en specifikation, hvor funktionen af Java Virtual Machine er specifikt beskrevet. Algoritmen er imidlertid en uafhængig identitet, der kun vælges af implementeringsudbyderen som Oracle og andre kendte virksomheder. Som sådan er JVM en implementering kendt som Java Runtime Environment (JRE).
Definition
Det er defineret som en beskrivelse af et softwareprogram, der tilbyder runtime-miljø for kode og dets betydelige udførelse. Det er med andre ord, hvordan vi kører Java-programmerne - konfigurerer JVM's indstillinger og er afhængige af det for at klare programressourcerne under udførelsesprocessen.
forståelse
Java er kendt som platformuafhængig på grund af Java Virtual Machine. Når der indsendes en indsendelse til forskellige computere med det forskellige operativsystem, der har JVM, tolkes bytecoden til maskinniveau sprog af JVM. For at være præcise er JVM-programmer skrevet på C-programmeringssprog, mens JVM er uafhængig af operativsystemet. Det er en nøglekomponent i Java-arkitekturen.
Bortset fra alt dette er det ansvarligt for at tildele den essentielle hukommelse, der kræves af et Java-program. Det er også ansvarligt for at forbyde hukommelsesområdet.
Hvad det gør?
De vigtige operationer, som JVM udfører, er som følger:
- Indlæsning af kode
- Kodeverificering
- Kodeudførelse
- Runtime miljøforsyning
Bortset fra alt dette, ruller det klassifikationer ud for klassefilformat, hukommelsesområde, indsamlet bunke med affald, registersæt, dødelig fejlrapportering osv
JVM Arkitektur
Lad os få nogle vigtige indsigter om den interne arkitektur af JVM, der består af:
1. Klasselaster
Det er et undersystem af JVM, der bruges til at indlæse klassefiler. Når du kører java-programmet, indlæses det først af klasselæseren. De tre klasselastere, som Java inkluderer, er som følger:
a) Bootstrap ClassLoader
Det er superklassen i Extension klasselæsser. Det hjælper med indlæsning af rt.jar-filer, der bærer alle klassefiler.
b) Extension ClassLoader
Det er den overordnede klasselaster til System klasselaster og børneklasseindlæser til Bootstrap. Krukkefilerne i biblioteket $ JAVA_HOME / jre / lib / ext kan ekstraheres gennem Extension ClassLoader.
C) System / Application ClassLoader
Det er barnet til Extension classloader, også kendt som Application classloader. Klassefilerne fra klassespaden kan udvindes gennem den. Classpath, som som standard er indstillet til det aktuelle bibliotek, kan ændres ved hjælp af '-cp' eller '-clpathpath' switch.
2.Klasse (metode) Område
Strukturen i klassen som felt- og metodata, løbende konstant pool og koden for metoder gemmes i klasse (metode) -området. Det er en hukommelse, der oprettes ved JVM-opstart og deles mellem alle tråde som Heap.
3. Heap
Objekterne tildeles gennem dette nyttige runtime data-område. Det er et hukommelsessted, der gemmer objekter sammen med dets forekomstvariabler. Hver gang et objekt oprettes i Java, går det ind i dyngen - hukommelsesområdet.
4. Stak
Sammen med lagring af rammer indeholder Java Stack variabler og delvise resultater. Det spiller også en central rolle i metode, påkaldelse og tilbagevenden. Hver enkelt tråd består af sin private JVM-stak, oprettet på samme tid som tråd. Hver gang en metode eskalerer, genereres en ny ramme og knuses, når metodeinvokationen afsluttes.
5. Registrering af programtæller (PC)
PC-registeret indeholder JVM-instruktionsadressen på tidspunktet for dens udførelse. Hold styr på instruktionerne, det har værdi for enhver instruktion, der er udefineret til de oprindelige metoder.
6. Native Method Stack
De oprindelige procedurer, der bruges i applikationerne, er en del af Native Method Stack. Disse metoder er skrevet på andre sprog end Java. Ved hjælp af hver tråd kan JVM-implementeringer ikke stole på konventionelle stabler og kan ikke indlæse originale metoder. For at være præcis ligner den stak, men bruges til oprindelige metoder.
7. Motor
Da det er det centrale aspekt af JVM, kommunikerer det med dets forskellige hukommelsesområder. Dette inkluderer:
en. Skraldemand
Dette spiller en vigtig rolle i JVM's dynamiske hukommelsesstyringssystem. Den hukommelse, der er optaget og ikke længere henvises til af nogen af de tilgængelige Java-objekter, frigives gennem Garbage Collector.
b. Tolk
Det udfører instruktionerne efter at have læst bytecode-strømmen.
c. Just-In-Time (JIT) kompilator
Aktiverer ydelsesforbedring, JIT-kompilator kompilerer dele af bytecoden med lignende funktionalitet på samme tid. Det hjælper med at reducere den tid, der kræves til kompilationsprocessen.
8. Java Native Interface (JNI)
De applikationer, der er scriptet på andre sprog, dvs. C, C ++, samling osv. Kan forbindes til via en interface leveret af JNI. JNI-rammer bruges af Java til at interagere med OS-biblioteker eller til at sende output til konsollen.
Hvad er brugen af JVM?
JVM har to primære funktioner: at give Java-programmer mulighed for at køre på enhver enhed eller operativsystem (kendt som "Skriv en gang, kør hvor som helst") og at styre og optimere programhukommelse.
Fordele og ulemper
Java-programmer udføres passende gennem JVM. Bytecode - et mellemsprog bruges til at kompilere Java-programmer og derefter udføres gennem JVM. Hvert individuelt program, der kompileres til bytecode, kan udføres af enhver platform brændt af JVM. Dette muliggør Java-software mere effektiv såvel som kompatibel som pr. Forskellige beregnede platforme. JVM har et par bemærkelsesværdige fordele og ulemper, som enhver udvikler skal veje nøje, før de investerer i Java-udvikling.
1. Sikkerhed
Gennem JVMs sikkerhedsniveau kan programmererne effektivt skrive avancerede, sikre Java-programmer. Det giver styresystemets ressourcer mulighed for at identificere den ondsindede software og hjælper også med dets forebyggelse i overensstemmelse hermed.
2. Ydeevne
Java-programmer, der kører på en JVM, tilbyder sandsynligvis langsommere udførelse sammenlignet med de programmer, der er skrevet i C ++. Dette skyldes kodeoptimering, som overdrevent afhænger af forskellige systemspecifikke funktioner. Java-bytekoden kan heller ikke optimeres til et specifikt hardwaresæt, da det er systemneutral.
3. Korrekthed
Det korrekte er programmet, der udfører effektivt og imødekommer en brugers forventning til fulde. JVMs indbyggede funktioner gør det muligt for det at fungere korrekt og uden fejl.
Hvorfor skal vi bruge JVM?
På trods af at have syntaktisk Java-kode, kan JVM køre på forskellige sprogprogrammer. Nogle af grundene til, at det bruges så udbredt, og hvorfor det bruges på forskellige platforme, er vist nedenfor:
Den bruger heap-hukommelse: Heap-hukommelse er en kernekomponent, der bruges til dynamisk hukommelsesallokering til at definere klasser og objektinitialisering, og da JVM understøtter heap-hukommelse, har den bred accept.
Tilbyder sikkerhed for placering af fjernkode: JVM-rammer er designet på en sådan måde, at fjernapplikation let udføres. Denne teori følges for eksekvering af Java Applet.
Konklusion
Det faktum, at JVM fungerer på flere operativsystemer, giver det en tommel op på teknologiområdet. Ved hjælp af det på Windows, Linux og andre operativsystemer er det aktiveret at transformere bytecode uanset hardware og operativsystem, der skal udføres. Derudover er dens evne til at tilbyde værtscomputeren sikkerhed ved at sikre deres data og program en anden grund til, at JVM har haft så succes i fortiden og fortsat er dominerende i fremtiden.
Anbefalede artikler
Dette har været en guide til Hvad er en JVM (Java Virtual Machine). Her diskuterede vi de grundlæggende koncepter med listen over arkitektur og anvendelser af JVM. Du kan også gennemgå vores andre foreslåede artikler for at lære mere -
- Bedste Javascript-rammer
- Er Python-objektorienteret
- Anvendelser af C ++ i Real World
- Karriere i ASP.NET
- JRE vs JVM | Top 8 forskelle med (Infographics)