JDK versus JRE versus JVM in Java – Verschil daartussen

Belangrijkste verschil tussen JDK, JRE en JVM

  • JDK is een softwareontwikkelingskit, terwijl JRE een softwarebundel is die dit mogelijk maakt Java programma dat moet 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 dat is Java Runtime Environment, terwijl de volledige vorm van JVM dat wel is Java Virtuele machine.
  • JDK en JRE zijn platformafhankelijk, terwijl JVM platformonafhankelijk is op bytecodeniveau, maar afhankelijk is van platformspecifieke implementaties.
  • 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 toepassingen. De volledige vorm van JDK is Java Ontwikkelingskit. Java ontwikkelaars kunnen het gebruiken Windows, macOS, Solarisen Linux. JDK helpt hen bij het coderen en uitvoeren 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 wilt rennen Java programma heb je JRE nodig. Als u geen programmeur bent, hoeft u dat niet te doen installeer JDK, maar gewoon JRE om uit te voeren Java programma's. Alle JDK-versies worden echter meegeleverd Java Runtime Environment, zodat u de JRE niet afzonderlijk op uw pc hoeft te downloaden en te installeren. De volledige vorm van JRE is Java Runtime-omgeving.

Wat is JVM?

JVM is een engine die een runtime-omgeving biedt om de Java Code of applicaties. Het converteert Java bytecode in machinetaal. JVM maakt deel uit van Java Omgeving uitvoeren (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 Virtuele machine.

In veel andere programmeertalen produceert de compiler machinecode voor een specifiek systeem. Echter, Java compiler produceert 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 te schrijven Java programma's en JRE om deze uit te voeren.
  • Het bevat een compiler, Java applicatiestarter, Appletviewer, enz.
  • Compiler converteert geschreven code Java in bytecode.
  • Java application launcher 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 hiervoor Java ontwikkeling zoals een debugger, compiler, enz.
  • Het maakt gebruik van belangrijke pakketklassen zoals math, swingetc, util, lang, awt en runtime-bibliotheken.
  • Als je moet rennen Java applets, dan moet JRE op uw systeem zijn geïnstalleerd.

Waarom JVM?

Hier zijn de belangrijke redenen om JVM te gebruiken:

  • JVM biedt een platformonafhankelijke manier van uitvoeren Java broncode.
  • Het heeft talloze bibliotheken, tools en frameworks.
  • Zodra je rent Java programma, dat u op elk platform kunt gebruiken en veel tijd kunt besparen.
  • JVM wordt geleverd met een JIT-compiler (Just-in-Time) die converteert Java broncode 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 om te ontwikkelen en uit te voeren Java broncode.
  • Het kan worden geïnstalleerd op: Windows, Unix en Mac-besturingssystemen.
  • De Diamond-operator kan worden gebruikt om een ​​generieke type-interface te specificeren in plaats van het schrijven van een 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, inclusief Java Webstart en Java Inpluggen.
  • Ontwikkelaars kunnen de broncode eenvoudig in JRE uitvoeren, maar hij/zij kan de Java programma.
  • Het omvat integratiebibliotheken zoals Java Databaseconnectiviteit (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 de 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-omgeving.
  • JDK en JRE bevatten beide Java Virtuele 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 hardware en het besturingssysteem. Je kunt dus een Java-programma één keer 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 core creëren Java programma's die kunnen worden uitgevoerd door de JRE, waaronder JVM en klassenbibliotheken.
  • Klasbibliotheken: Het is een groep dynamisch laadbare bibliotheken die Java programma kan tijdens runtime aanroepen.
  • Samenstellers: Het is een Java programma dat tekstbestanden van ontwikkelaars accepteert en erin compileert Java klasse bestand. Het is de gebruikelijke vorm van uitvoer die door de compiler wordt gegeven en die bevat Java bytecode. In Java, de primaire compiler is Javac.
  • Foutopsporing: Debugger is een Java programma waarmee ontwikkelaars kunnen testen en debuggen Java 's.
  • JavaDocument: JavaDoc is documentatie gemaakt door Sun Microsystems voor de 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 je schrijft en compileert Java code 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: Zodra je compileert Java native code, het draait op een specifiek hardwareplatform.

Op deze manier kan de Java programma draait in JRE.

Hoe JVM functioneert?

JVM-functies

JVM-functionaliteit

Dit zijn de belangrijke componenten van JVM:

1) Klassenlader

De class loader is een subsysteem dat wordt gebruikt voor het laden van class files. Het voert drie belangrijke functies uit, namelijk: 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 runtimepool.

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 virtuele 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. Het staat het toe Java code, die in een JVM draait en kan 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 Ontwikkelingskit. De volledige vorm van JRE is Java Runtime-omgeving. De volledige vorm van JVM is Java Virtuele machine.
JDK is een softwareontwikkelingskit waarin applicaties kunnen worden ontwikkeld Java. Het is een softwarebundel die biedt Java klassebibliotheken met de benodigde componenten om uit te voeren Java code. JVM wordt uitgevoerd Java bytecode en biedt een omgeving voor de uitvoering ervan.
JDK is platformafhankelijk. JRE is ook platformafhankelijk. JVM is platformonafhankelijk.
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 creëren Java programma's die kunnen worden uitgevoerd en uitgevoerd door JRE en JVM. De JRE is het onderdeel 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.