Skillnaden mellan JRE vs JVM

Här kommer vi att förstå vad JVM (virtuell Java-maskin) är, vad är JRE (Java Runtime Environment). Dessutom kommer vi att studera de stora skillnaderna mellan JVM och JRE. I det här ämnet kommer vi att lära oss om JRE vs JVM.

Vad är JVM?

Java Virtual Machine (JVM) är en virtuell maskin som finns på din dator och kör Java-byte-kod. Java Virtual Machine förstår bara byte-kod, det är därför det finns en javac-kompilator som konverterar källkoden (.java) till byte-kod (.klass) som förstås av JVM. Även om JVM installerat i olika operativsystem är annorlunda, är produktionen som produceras av JVM konsekvent över alla operativsystem.

Komponenter i JVM

Följande är olika komponenter som finns i JVM:

1. ClassLoader: Klassfunktionens huvudfunktion är att läsa .klass-filen och spara bytekoden i metodområdet för JVM.

2. Metodområde: Java Virtual Machines metodområde lagrar all klassrelaterad information om alla klasser som laddas av klasslastaren.

3. Heap Area: Heap Area är en del av JVM där skapade objekt finns. JVM skapar ett klassobjekt för varje .klassfil som laddas av klasslastaren.

4. Stack: Den här delen av JVM lagrar tillfälliga variabler.

5. PC-register: PC-register håller register över vilken instruktion som har utförts och vilken som är nästa i raden som ska utföras.

6. Native Method Stack: Native Method Stack innehåller den ursprungliga kodinformationen. Det är skrivet på andra programmeringsspråk än java.

7. Execution Engine: Execution engine of jvm ansvarar för exekveringen av bytekoden eller den sammanställda koden. Exekveringsmotorn för jvm innehåller:

  • Virtuell processor: Den virtuella processorn ansvarar för att köra operationskoder i följd.
  • Tolk: Tolkaren tolkar bytekoden. Det ansvarar för att läsa strömmen av byte-kod, tolka bytecode-instruktioner och köra dem genom den virtuella processorn. Men nackdelen med tolken är att när en metod kallas flera gånger, varje gång det krävs en ny tolkning.
  • Just-in-Time (JIT) kompilator: Den används i grunden för prestandaförbättring. Den används för att övervinna nackdelen med tolken när JVM hittar upprepade koder, den använder JIT-kompilatorn som sammanställer bytekoden och ändrar den till inbyggd kod. Denna ursprungliga kod används direkt i upprepade metodsamtal, vilket i sin tur ger en drastisk förbättring av prestanda.

Från detaljerna ovan listade komponenter kan funktioner för JVM sammanfattas som:

  • JVM laddar kod.
  • JVM verifierar den laddade koden.
  • JVM kör koden om den är giltig.
  • JVM tillhandahåller en runtime-miljö.

Arbetet med JVM kan förklaras genom flödet nedan:

Vad är JRE?

Java Runtime Environment är en del av Java-utvecklingspaketet (JDK).

Java Runtime Environment (JRE) är ett installationspaket som tillhandahåller en miljö för att köra Java-kod. Det bör noteras att JRE endast används av slutanvändarna de som vill köra java-kod. JRE innehåller JVM i det som är JVM är en delmängd av JRE. Java Runtime Environment inkluderar följande:

Distributionsteknologier.

  1. Användargränssnittsverktygssatser som abstrakt fönsterverktygssats (AWT), gunga, Java-namngivning och kataloggränssnitt (JBDI), Java 2D, utskriftsservice, dra och släpp (DND), etc.
  2. Långa och använda bibliotek som lang and util, hantering, zip, reflektion, JAR, Preference API, Regular Expressitions och multithreading-verktyg, Logging och andra.
  3. Basbibliotek inkluderar Input-output (I / 0), matematik, nätverk, åsidosättande mekanism Serialisering, Java XML-parsers, Java Native Interface (JNI).
  4. Integrationsbibliotek till exempel Interface Definition Language, Java DataBase Connectivity (JDBC), Remote Method Invocation (RMI), Java Naming och Directory Interface (JNDI).
  5. Java Virtual Machine (JVM).

Jämförelse mellan head och huvud mellan JRE vs JVM (Infographics)

Nedan visas de 8 bästa skillnaderna mellan JRE vs JVM

Viktiga skillnader mellan JRE vs JVM

Följande är viktiga skillnader mellan JRE vs JVM

  • Huvudfunktionen för JRE är att tillhandahålla en runtime-miljö för att köra java-applikationer medan JVM konverterar byte-kod till maskinkod för exekvering och ger plattformsoberoende.
  • JRE fungerar som container och jvm fungerar som innehåll.
  • JRE består av JVM + Libraries för att köra applikationer medan jvm endast innehåller runtime-miljö för att köra Java-bytecode.

Jämförelsetabell mellan JRE vs JVM

Låt oss diskutera den bästa jämförelsen mellan JRE vs JVM

Grund för jämförelseJREJVM
Fulla formenDen fullständiga formen av JRE är Java Runtime Environment.Den fullständiga formen av JVM är Java Virtual Machine.
DefinitionJava Runtime Environment är en del av Java Development Kit (JDK) som består av en JVM, kärnklasser och stödbibliotek. Dess huvudfunktion är att tillhandahålla runtime-miljö för att köra Java-kod.Java Virtual Machine (JVM) är som en virtuell dator som kör en uppsättning förkompilerade uttalanden. När en Java-kompilator sammanställer källkod genererar den en uppsättning instruktioner som heter bytecode (.class-filer). Java Virtual Machine tolkar bytekodinstruktioner och konverterar dem till maskinkod för dess körning.
Behållare och innehållJRE fungerar som en behållare som innehåller JVM, bibliotek och andra filer. Dessutom innehåller JRE inte utvecklingsverktyg som kompilator och felsökare.JVM är en del av JRE. Det kan betraktas som en delmängd av JRE.
UtvecklingsändamålDet används inte för utvecklingsändamål.Det används för utvecklingsändamål.
Löpande syfteDen används för att köra Java-kod.Den används inte för att köra Java-kod.
Sammansatt avJRE består av JVM + -bibliotek för att köra applikationer.Den innehåller bara en runtime-miljö för att köra Java-bytekod.
Delmängd avDet är en delmängd av JDK.Det är en delmängd av JRE.
VerktygDen innehåller klassbibliotek som krävs för att köra program.Det innehåller inga verktyg.

Slutsats - JRE vs JVM

Från artikeln har vi en tydlig förståelse av både Java Runtime Environment (JRE) och Java Virtual Machine (JVM) som är de viktigaste delarna av Java Development Kit (JDK).

Rekommenderade artiklar

Detta är en guide till JRE vs JVM. Här har vi diskuterat JRE vs JVM viktiga skillnader med infografik och jämförelse tabell. Du kan också titta på följande artiklar för att lära dig mer -

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

Kategori: