Verschil tussen JRE versus JVM

Hier zullen we begrijpen wat JVM (Java virtual machine) is, wat JRE (Java Runtime Environment) is. Bovendien zullen we ook de grote verschillen tussen JVM en JRE bestuderen. In dit onderwerp gaan we meer te weten komen over JRE versus JVM.

Wat is JVM?

De Java Virtual Machine (JVM) is een virtuele machine die zich op uw computer bevindt en java-bytecode uitvoert. De Java Virtual Machine begrijpt alleen bytecode, daarom is er een javac-compiler die de broncode (.java) omzet in bytecode (.class) die wordt begrepen door JVM. Hoewel JVM binnen verschillende besturingssystemen is geïnstalleerd, is de uitvoer die door JVM wordt geproduceerd consistent in alle besturingssystemen.

Componenten van JVM

De volgende verschillende componenten zijn aanwezig in JVM:

1. ClassLoader: de hoofdfunctie van de klassenlader is het lezen van het .class-bestand en de bytecode opslaan in het methodegebied van de JVM.

2. Methode Gebied: Java Virtual Machine methode gebied slaat alle klasse-gerelateerde informatie van alle klassen wordt geladen door de klasse loader.

3. Heap-gebied: Heap-gebied is een onderdeel van JVM waar gemaakte objecten zich bevinden. JVM maakt een klasseobject voor elk .class-bestand dat wordt geladen door de klassenlader.

4. Stack: dit deel van JVM slaat tijdelijke variabelen op.

5. PC-registers: PC-registers houden bij welke instructie is uitgevoerd en welke de volgende is die moet worden uitgevoerd.

6. Native Method Stack: Native method stack bevat de native code-informatie. Het is geschreven in andere programmeertalen dan Java.

7. Execution Engine: Execution engine van jvm is verantwoordelijk voor de uitvoering van de bytecode of gecompileerde code. De uitvoerings-engine van jvm bevat:

  • Virtuele processor: de virtuele processor is verantwoordelijk voor het opeenvolgend uitvoeren van operatiecodes.
  • Interpreter: de interpreter interpreteert de bytecode. Het is verantwoordelijk voor het lezen van de stroom bytecode, het interpreteren van bytecode-instructies en het uitvoeren ervan via de virtuele processor. Maar het nadeel van de tolk is dat wanneer een methode meerdere keren wordt genoemd, er telkens een nieuwe interpretatie vereist is.
  • Just-In-Time (JIT) -compiler: het wordt hoofdzakelijk gebruikt voor prestatieverbetering. Het wordt gebruikt om het nadeel van de tolk te overwinnen wanneer JVM herhaalde code vindt, gebruikt het de JIT-compiler die de bytecode compileert en deze in de eigen code verandert. Deze native code wordt direct gebruikt in herhaalde methodeaanroepen, wat op zijn beurt een drastische verbetering van de prestaties biedt.

Uit de details hierboven genoemde componenten kunnen de functies van JVM worden samengevat als:

  • JVM laadt code.
  • JVM verifieert de geladen code.
  • JVM voert code uit als deze geldig is.
  • JVM biedt een runtime-omgeving.

De werking van JVM kan worden verklaard via de onderstaande stroom:

Wat is JRE?

Java Runtime Environment is een onderdeel van Java Development Kit (JDK).

Java Runtime Environment (JRE) is een installatiepakket dat een omgeving biedt voor het uitvoeren van Java-code. Opgemerkt moet worden dat JRE alleen wordt gebruikt door de eindgebruikers die Java-code willen uitvoeren. JRE bevat JVM daarin dat is JVM is een subset van JRE. Java Runtime Environment omvat het volgende:

Implementatietechnologieën.

  1. User Interface Toolkits zoals Abstract Window Toolkit (AWT), Swing, Java Naming en Directory Interface (JBDI), Java 2D, Print Service, Drag and Drop (DND), etc.
  2. Lang en util bibliotheken zoals lang en util, management, zip, reflectie, JAR, Preference API, reguliere expressies Concurrency en multithreading-hulpprogramma's, logboekregistratie en andere.
  3. Basisbibliotheken inclusief Input-output (I / 0), Wiskunde, Netwerken, Onderdrukkingsmechanisme Serialisatie, Java XML-parsers, Java Native Interface (JNI).
  4. Integratiebibliotheken bijvoorbeeld Interface Definition Language, Java DataBase Connectivity (JDBC), Remote Method Invocation (RMI), Java Naming en Directory Interface (JNDI).
  5. Java Virtual Machine (JVM).

Head to Head-vergelijking tussen JRE en JVM (infographics)

Hieronder staan ​​de top 8 verschillen tussen JRE en JVM

Belangrijkste verschillen tussen JRE en JVM

Hierna volgen de belangrijkste verschillen tussen JRE en JVM

  • De belangrijkste functie van JRE is het bieden van een runtime-omgeving voor het uitvoeren van Java-applicaties, terwijl JVM byte-code omzet in machinecode voor uitvoering en platformonafhankelijkheid biedt.
  • JRE fungeert als container en jvm fungeert als inhoud.
  • JRE is samengesteld uit JVM + Bibliotheken om toepassingen uit te voeren, terwijl jvm alleen een runtime-omgeving bevat voor het uitvoeren van Java-bytecode.

Vergelijkingstabel tussen JRE versus JVM

Laten we de topvergelijking tussen JRE en JVM bespreken

VergelijkingsbasisJREJVM
Volledige vormDe volledige vorm van JRE is de Java Runtime Environment.De volledige vorm van JVM is Java Virtual Machine.
DefinitieJava Runtime Environment is een onderdeel van Java Development Kit (JDK) dat bestaat uit een JVM, kernklassen en ondersteuningsbibliotheken. De belangrijkste functie is het bieden van een runtime-omgeving om Java-code uit te voeren.Java Virtual Machine (JVM) is als een virtuele computer die een set vooraf gecompileerde instructies uitvoert. Wanneer een Java-compiler broncode compileert, genereert deze een set instructies met de naam bytecode (.class-bestanden). De Java Virtual Machine interpreteert bytecode-instructies en converteert deze naar machinecode voor uitvoering.
Container en inhoudJRE fungeert als een container die JVM, bibliotheken en andere bestanden bevat. Bovendien bevat JRE geen ontwikkeltools zoals compiler en debugger.JVM is een onderdeel van JRE. Het kan worden beschouwd als een subset van JRE.
OntwikkelingsdoelHet wordt niet gebruikt voor ontwikkelingsdoeleinden.Het wordt gebruikt voor ontwikkelingsdoeleinden.
Lopend doelHet wordt gebruikt voor het uitvoeren van Java-code.Het wordt niet gebruikt voor het uitvoeren van Java-code.
Bestaande uitJRE is samengesteld uit JVM + bibliotheken om toepassingen uit te voeren.Het bevat alleen een runtime-omgeving voor het uitvoeren van Java bytecode.
Deelverzameling vanHet is een subset van JDK.Het is een subset van JRE.
GereedschapHet bevat klassenbibliotheken die vereist zijn om programma's uit te voeren.Het bevat geen gereedschap.

Conclusie - JRE versus JVM

Uit het artikel hebben we een goed begrip van zowel Java Runtime Environment (JRE) als Java Virtual Machine (JVM), de belangrijkste onderdelen van Java Development Kit (JDK).

Aanbevolen artikelen

Dit is een gids voor JRE versus JVM. Hier hebben we de JRE versus JVM belangrijkste verschillen met infographics en vergelijkingstabel besproken. U kunt ook de volgende artikelen bekijken voor meer informatie -

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