JDK versus JRE versus JVM in Java - het verschil daartussen

Belangrijkste verschil tussen JDK, JRE en JVM

  • JDK is een softwareontwikkelingskit, terwijl JRE een softwarebundel is waarmee het Java-programma kan worden uitgevoerd, terwijl JVM een omgeving is voor het uitvoeren van bytecode.
  • De volledige vorm van JDK is Java Development Kit, terwijl de volledige vorm van JRE Java Runtime Environment is, terwijl de volledige vorm van JVM Java Virtual Machine is.
  • JDK is platformafhankelijk, JRE is ook platformafhankelijk, maar JVM is niet platformonafhankelijk.
  • JDK bevat tools voor het ontwikkelen, debuggen, enz. JRE bevat klassenbibliotheken en andere ondersteunende bestanden, terwijl softwareontwikkelingstools niet zijn opgenomen in JVM.
  • JDK wordt geleverd met het installatieprogramma, aan de andere kant bevat JRE alleen de omgeving om de broncode uit te voeren, terwijl JVM zowel de software JDK als JRE bundelt.

Wat is JDK?

JDK is een softwareontwikkelomgeving die wordt gebruikt voor het maken van applets en Java-applicaties. De volledige vorm van JDK is Java Development Kit. Java-ontwikkelaars kunnen het gebruiken op Windows, macOS, Solaris en Linux. JDK helpt hen bij het coderen en uitvoeren van Java-programma's. Het is mogelijk om meer dan één JDK-versie op dezelfde computer te installeren.

Wat is JRE?

JRE is een stukje software dat is ontworpen om andere software uit te voeren. Het bevat de klassenbibliotheken, de loader-klasse en JVM. Simpel gezegd: als je een Java-programma wilt uitvoeren, heb je JRE nodig. Als u geen programmeur bent, hoeft u dat niet te doen installeer JDK, maar alleen JRE om Java-programma's uit te voeren. Alle JDK-versies worden echter gebundeld met Java Runtime Environment, dus u hoeft de JRE niet afzonderlijk op uw pc te downloaden en te installeren. De volledige vorm van JRE is Java Runtime Environment.

Wat is JVM?

JVM is een engine die een runtime-omgeving biedt om de Java-code of applicaties aan te sturen. Het converteert Java-bytecode naar machinetaal. JVM is een onderdeel van Java Run Environment (JRE). Het kan niet afzonderlijk worden gedownload en geïnstalleerd. Om JVM te installeren, moet u JRE installeren. De volledige vorm van JVM is Java Virtual Machine.

In veel andere programmeertalen produceert de compiler machinecode voor een specifiek systeem. De Java-compiler produceert echter code voor een virtuele machine die JVM wordt genoemd.

Waarom JDK gebruiken?

Dit zijn de belangrijke redenen om JDK te gebruiken:

  • JDK bevat tools die nodig zijn om Java-programma's te schrijven, en JRE om deze uit te voeren.
  • Het bevat een compiler, Java-applicatiestarter, Appletviewer, enz.
  • Compiler converteert in Java geschreven code naar bytecode.
  • De Java-toepassingsstarter opent een JRE, laadt de benodigde klasse en voert de hoofdmethode uit.

Waarom JRE gebruiken?

Dit zijn de belangrijke redenen om JRE te gebruiken:

  • JRE bevat klassenbibliotheken, JVM en andere ondersteunende bestanden. Het bevat geen enkel hulpmiddel voor Java-ontwikkeling, zoals een debugger, compiler, enz.
  • Het maakt gebruik van belangrijke pakketklassen zoals wiskunde, swingenz., util-, lang-, awt- en runtime-bibliotheken.
  • Als u Java-applets moet uitvoeren, moet JRE op uw systeem zijn geïnstalleerd.

Waarom JVM?

Hier zijn de belangrijke redenen om JVM te gebruiken:

  • JVM biedt een platformonafhankelijke manier om Java-broncode uit te voeren.
  • Het heeft talloze bibliotheken, tools en frameworks.
  • Zodra u het Java-programma hebt uitgevoerd, kunt u het op elk platform uitvoeren en veel tijd besparen.
  • JVM wordt geleverd met een JIT-compiler (Just-in-Time) die Java-broncode omzet in machinetaal op laag niveau. Daarom werkt het sneller als een reguliere applicatie.

Kenmerken van JDK

Dit zijn de belangrijke kenmerken van JDK:

  • Hiermee kunt u meerdere extensies in één enkel catch-blok verwerken.
  • JDK bevat alle functies die JRE heeft.
  • Het bevat ontwikkelhulpmiddelen zoals een compiler, debugger, enz.
  • JDK biedt de omgeving voor het ontwikkelen en uitvoeren van Java-broncode.
  • Het kan worden geïnstalleerd op Windows-, Unix- en Mac-besturingssystemen.
  • De Diamond-operator kan worden gebruikt bij het specificeren van een generiek type interface in plaats van het schrijven van de exacte interface.

Kenmerken van JRE

Dit zijn de belangrijke kenmerken van JRE:

  • Java Runtime Environment is een set tools waarmee de JVM daadwerkelijk wordt uitgevoerd.
  • JRE bevat implementatietechnologie, waaronder Java Web Start en Java Plug-in.
  • Ontwikkelaars kunnen de broncode eenvoudig in JRE uitvoeren, maar hij/zij kan het Java-programma niet schrijven en compileren.
  • Het omvat integratiebibliotheken zoals Java Database Connectivity (JDBC), Remote Method Invocation (RMI), Java Naming and Directory Interface (JNDI) en meer.
  • JRE heeft JVM en Java HotSpot virtuele machineclient.

Kenmerken van JVM

Dit zijn de belangrijke kenmerken van JVM:

  • Hiermee kunt u applicaties uitvoeren in een cloudomgeving of op uw apparaat.
  • Java Virtual Machine converteert bytecode naar machinespecifieke code.
  • Het biedt basis Java-functies zoals geheugenbeheer, beveiliging, garbagecollection en meer.
  • JVM voert het programma uit met behulp van bibliotheken en bestanden van Java Runtime Environment.
  • JDK en JRE bevatten beide Java Virtual Machine.
  • Het kan het Java-programma regel voor regel uitvoeren en wordt daarom ook wel tolk genoemd.
  • JVM is eenvoudig aan te passen, u kunt er bijvoorbeeld minimaal en maximaal geheugen aan toewijzen.
  • Het is onafhankelijk van de hardware en het besturingssysteem. U kunt dus één keer een Java-programma schrijven en het overal uitvoeren.

Hoe werkt JDK?

JDK-functies
JDK-functionaliteit

Dit zijn de belangrijke componenten van JDK:

  • JDK en JRE: Met de JDK kunnen programmeurs kern-Java-programma's maken die kunnen worden uitgevoerd door de JRE, inclusief JVM en klassenbibliotheken.
  • Klasbibliotheken: Het is een groep dynamisch laadbare bibliotheken die het Java-programma tijdens runtime kan aanroepen.
  • Samenstellers: Het is een Java-programma dat tekstbestanden van ontwikkelaars accepteert en compileert in een Java-klassebestand. Het is de gebruikelijke uitvoervorm die door de compiler wordt gegeven en die Java-bytecode bevat. In Java is Javac de primaire compiler.
  • Foutopsporing: Debugger is een Java-programma waarmee ontwikkelaars Java-programma's kunnen testen en debuggen.
  • JavaDoc: JavaDoc is documentatie gemaakt door Sun Microsystems voor Java. JavaDoc kan worden gebruikt voor het genereren van API-documentatie in een HTML-bestand vanuit het bronprogramma

Hoe JRE functioneert?

JRE-functies

JRE-functionaliteit

JRE heeft een exemplaar van JVM, bibliotheekklassen en ontwikkelingstools. Zodra u Java-code schrijft en compileert, genereert de compiler een klassenbestand met bytecode.

Dit zijn de belangrijke componenten van JRE:

  • Klasseladers: De klassenlader laadt verschillende klassen die nodig zijn voor het uitvoeren van een Java-programma. JVM gebruikt drie klassenladers, de bootstrap-klasselader, de uitbreidingsklasse-lader en de systeemklasse-lader.
  • Bytecodeverificatie: Bytecodeverificatie verifieert de bytecode zodat de code de tolk niet stoort.
  • Tolk: Zodra de klassen zijn geladen en de code is geverifieerd, leest de tolk de code regel voor regel.
  • Looptijd: Runtime is een systeem dat voornamelijk bij het programmeren wordt gebruikt om de tijdsperiode te beschrijven waarin een bepaald programma draait.
  • Hardware: Nadat u de native Java-code heeft gecompileerd, wordt deze op een specifiek hardwareplatform uitgevoerd.

Op deze manier draait het Java-programma in JRE.

Hoe JVM functioneert?

JVM-functies

JVM-functionaliteit

Dit zijn de belangrijke componenten van JVM:

1) Klassenlader

De klassenlader is een subsysteem dat wordt gebruikt voor het laden van klassenbestanden. Het vervult drie belangrijke functies viz. Laden, koppelen en initialiseren.

2) Methodegebied

JVM Method Area slaat de structuur van de klasse op, zoals metadata, de code voor Java-methoden en de constante runtime-pool.

3) Hoop

Alle objecten, arrays en instantievariabelen worden op een hoop opgeslagen. Dit geheugen wordt gedeeld over meerdere threads.

4) JVM-taalstapels

Java-taalstapels slaan lokale variabelen en de gedeeltelijke resultaten ervan op. Elke thread heeft zijn eigen JVM-taalstapel, die gelijktijdig wordt gemaakt terwijl de thread wordt gemaakt. Er wordt een nieuw frame gemaakt wanneer de methode wordt aangeroepen, en het wordt verwijderd wanneer het aanroepproces van de methode is voltooid.

5) PC-registers

PC-registers slaan het adres op van de Java Virtual Machine-instructie die momenteel wordt uitgevoerd. In Java heeft elke thread een afzonderlijk pc-register.

6) Native methodestapels

Native methodestapels bevatten de instructie van native code, afhankelijk van de native bibliotheek. Het wijst geheugen toe op native heaps of gebruikt elk type stapel.

7) Uitvoeringsmotor

Het is een soort software die wordt gebruikt om software, hardware of complete systemen te testen. De testuitvoeringsengine bevat nooit informatie over het geteste product.

8) Native Method-interface

De Native Method Interface is een programmeerframework. Hiermee kan Java-code, die in een JVM wordt uitgevoerd, worden aangeroepen door bibliotheken en native applicaties.

9) Native methodebibliotheken

Native Libraries is een verzameling van de Native Libraries (C, C++), die nodig zijn voor de Execution Engine.

Verschil tussen JDK, JRE en JVM

Dit zijn de belangrijkste verschillen tussen JDK versus JRE versus JVM:

JDK JRE JVM
De volledige vorm van JDK is Java Development Kit. De volledige vorm van JRE is Java Runtime Environment. De volledige vorm van JVM is Java Virtual Machine.
JDK is een softwareontwikkelingskit om applicaties in Java te ontwikkelen. Het is een softwarebundel die Java-klassebibliotheken voorziet van de noodzakelijke componenten om Java-code uit te voeren. JVM voert Java-bytecode uit en biedt een omgeving om deze uit te voeren.
JDK is platformafhankelijk. JRE is ook platformafhankelijk. JVM is sterk platformafhankelijk.
Het bevat tools voor het ontwikkelen, debuggen en monitoren van Java-code. Het bevat klassenbibliotheken en andere ondersteunende bestanden die JVM nodig heeft om het programma uit te voeren. Softwareontwikkelingstools zijn niet opgenomen in JVM.
Het is de superset van JRE Het is de subset van JDK. JVM is een subset van JRE.
Met de JDK kunnen ontwikkelaars Java-programma's maken die kunnen worden uitgevoerd en uitgevoerd door de JRE en JVM. De JRE is het deel van Java dat de JVM creëert. Het is de Java-platformcomponent die de broncode uitvoert.
JDK wordt geleverd met het installatieprogramma. JRE bevat alleen een omgeving om de broncode uit te voeren. JVM gebundeld in zowel software JDK als JRE.