Forskjellen mellom JRE vs JVM

Her skal vi forstå hva JVM (virtuell Java-maskin) er, hva som er JRE (Java Runtime Environment). Videre vil vi også studere de viktigste forskjellene mellom JVM og JRE. I dette emnet skal vi lære om JRE vs JVM.

Hva er JVM?

Java Virtual Machine (JVM) er en virtuell maskin som er bosatt på datamaskinen din og kjører Java-byte-kode. Java Virtual Machine forstår bare byte-kode, det er grunnen til at det er en javac-kompilator som konverterer kildekoden (.java) til byte-kode (.class) som forstås av JVM. Selv om JVM installert i forskjellige operativsystemer er forskjellig, er output produsert av JVM konsistent på tvers av alle operativsystemer.

Komponenter av JVM

Følgende er forskjellige komponenter som finnes i JVM:

1. ClassLoader: Hovedfunksjonen til klasselasteren er å lese .class-filen og lagre bytekoden i metodeområdet til JVM.

2. Metodeområde: Java Virtual Machines metodeområde lagrer all klasserelatert informasjon om alle klassene som lastes av klasselasteren.

3. Heap Area: Heap Area er en del av JVM der opprettede objekter befinner seg. JVM oppretter et klasseobjekt for hver .klasse-fil lastet av klasselasteren.

4. Stabel: Denne delen av JVM lagrer midlertidige variabler.

5. PC-registre: PC-registre fører oversikt over hvilken instruksjon som er utført og hvilken som er neste linje som skal utføres.

6. Native Method Stack: Native Method Stack inneholder informasjon om innfødt kode. Det er skrevet på andre programmeringsspråk enn java.

7. Execution Engine: Execution engine of jvm er ansvarlig for utførelsen av bytecode eller kompilert kode. Utførelsesmotoren til jvm inneholder:

  • Virtuell prosessor: Den virtuelle prosessoren er ansvarlig for å utføre operasjonskoder i rekkefølge.
  • Tolk: Tolken tolker bytekoden. Det er ansvarlig for å lese strømmen av byte-kode, tolke bytecode-instruksjoner og utføre dem gjennom den virtuelle prosessoren. Men ulempen med tolken er at når en metode kalles flere ganger, hver gang det er krav om en ny tolkning.
  • Just-In-Time (JIT) kompilator: Den brukes i utgangspunktet til ytelsesforbedring. Den brukes for å overvinne ulempen ved tolken når JVM finner gjentatt kode den bruker JIT-kompilatoren som kompilerer bytekoden og endrer den til native code. Denne native koden brukes direkte i gjentatte metodeanrop, noe som igjen gir en drastisk forbedring av ytelsen.

Fra detaljene ovenfor listede komponenter kan funksjoner til JVM oppsummeres som:

  • JVM laster kode.
  • JVM verifiserer den lastede koden.
  • JVM kjører kode hvis den er gyldig.
  • JVM gir et kjøretidsmiljø.

Arbeidet med JVM kan forklares gjennom strømmen nedenfor:

Hva er JRE?

Java Runtime Environment er en del av Java Development Kit (JDK).

Java Runtime Environment (JRE) er en installasjonspakke som gir et miljø for å kjøre Java-kode. Det skal bemerkes at JRE bare brukes av sluttbrukerne de som vil kjøre java-kode. JRE inneholder JVM i det som er JVM er en undergruppe av JRE. Java Runtime Environment inkluderer følgende:

Distribusjonsteknologier.

  1. Brukergrensesnittverktøysett som Abstract Window Toolkit (AWT), Swing, Java Naming and Directory Interface (JBDI), Java 2D, Print Service, Drag and Drop (DND), etc.
  2. Lang og bruk biblioteker som lang og util, management, zip, refleksjon, JAR, Preference API, Regular Expressions Concurrency og multithreading verktøy, Logging og andre.
  3. Basebiblioteker inkludert Input-output (I / 0), matematikk, nettverk, overstyringsmekanisme Serialisering, Java XML-parsere, Java Native Interface (JNI).
  4. Integrasjonsbiblioteker for eksempel grensesnittdefinisjonsspråk, Java DataBase Connectivity (JDBC), Remote Method Invocation (RMI), Java Naming og Directory Interface (JNDI).
  5. Java Virtual Machine (JVM).

Sammenligning av topp mot hode mellom JRE vs JVM (Infographics)

Nedenfor er de 8 øverste forskjellene mellom JRE vs JVM

Viktige forskjeller mellom JRE vs JVM

Følgende er viktige forskjeller mellom JRE vs JVM

  • Hovedfunksjonen til JRE er å gi et kjøretidsmiljø for å kjøre java-applikasjoner, mens JVM konverterer byte-kode til maskinkode for utførelse og gir plattformuavhengighet.
  • JRE fungerer som container og jvm fungerer som innhold.
  • JRE er sammensatt av JVM + Biblioteker for å kjøre applikasjoner, mens jvm kun inneholder runtime-miljø for å utføre Java bytecode.

Sammenligningstabell mellom JRE vs JVM

La oss diskutere topp sammenligningen mellom JRE vs JVM

Grunnlag for sammenligningJREJVM
Fullstendig formatDen fullstendige formen for JRE er Java Runtime Environment.Den fullstendige formen for JVM er Java Virtual Machine.
DefinisjonJava Runtime Environment er en del av Java Development Kit (JDK) som består av en JVM, kjerneklasser og støttebibliotek. Dets viktigste funksjon er å gi kjøretidsmiljø for å kjøre Java-kode.Java Virtual Machine (JVM) er som en virtuell datamaskin som utfører et sett med forhåndskompilerte utsagn. Når en Java-kompilator kompilerer kildekode, genererer den et sett med instruksjoner kalt bytecode (.class-filer). Java Virtual Machine tolker bytekodeinstruksjoner og konverterer dem til maskinkode for utførelse.
Beholder og innholdJRE fungerer som en container som inneholder JVM, biblioteker og andre filer. Dessuten inneholder JRE ikke utviklingsverktøy som kompilator og feilsøking.JVM er en del av JRE. Det kan betraktes som en undergruppe av JRE.
UtviklingsformålDet brukes ikke til utviklingsformål.Den brukes til utviklingsformål.
Løpende formålDen brukes til å kjøre Java-kode.Den brukes ikke til å kjøre Java-kode.
Består avJRE er satt sammen av JVM + Biblioteker for å kjøre applikasjoner.Den inneholder bare et runtime-miljø for å utføre Java bytecode.
Undergruppe avDet er en undergruppe av JDK.Det er en undergruppe av JRE.
VerktøyDen inneholder klassebiblioteker som kreves for å kjøre programmer.Den inneholder ingen verktøy.

Konklusjon - JRE vs JVM

Fra artikkelen har vi en klar forståelse av både Java Runtime Environment (JRE) og Java Virtual Machine (JVM) som er de viktigste delene av Java Development Kit (JDK).

Anbefalte artikler

Dette er en guide til JRE vs JVM. Her har vi diskutert JRE vs JVM viktige forskjeller med infografikk og sammenligningstabell. Du kan også se på følgende artikler for å lære mer -

  1. Java vs Node JS
  2. Groovy vs Java
  3. Java vs C #
  4. Java vs JavaScript