Skillnaden mellan JDK, JRE och JVM är en av de populära intervjufrågorna. Du kan också bli ombedd att förklara JDK vs JRE vs JVM.
Skillnad mellan JDK, JRE och JVM
JDK, JRE och JVM är kärnbegrepp i Java-programmeringsspråk. Vi använder inte dessa begrepp vid programmering. Men som Java-utvecklare borde vi veta om dem.
JDK
Java Development Kit aka JDK är kärnkomponenten i Java Environment och tillhandahåller alla verktyg, körbara filer och binärer som krävs för att kompilera, felsöka och köra ett Java-program.
JDK är en plattformsspecifik programvara och det är därför vi har separata installatörer för Windows-, Mac- och Unix-system.
Vi kan säga att JDK är övermängden för JRE eftersom den innehåller JRE med Java-kompilator-, felsöknings- och kärnklasser.
JVM
JVM är hjärtat i Java-programmeringsspråket. När vi kör ett Java-program är JVM ansvarig för att konvertera bytekoden till den maskinspecifika koden.
JVM är också plattformsberoende och tillhandahåller grundläggande Java-funktioner som minneshantering, skräpsamling, säkerhet osv.
JVM kan anpassas och vi kan använda java-alternativ för att anpassa det. Till exempel tilldelning av minsta och högsta minne till JVM.
JVM kallas virtuellt eftersom det ger ett gränssnitt som inte beror på den underliggande operativsystem och maskinhårdvara.
Detta oberoende av hårdvara och operativsystem gör att java-programmet skrivs en gång-körs var som helst.
JRE
JRE är implementering av JVM. Det ger en plattform för att köra Java-program. JRE består av JVM, Java-binärer och andra klasser för att köra alla program framgångsrikt.
JRE innehåller inga utvecklingsverktyg som Java-kompilator, felsökare, JShell etc.
Om du bara vill köra ett java-program kan du bara installera JRE. Du behöver inte JDK eftersom det inte krävs någon utveckling eller kompilering av Java-källkod.
Nu när vi har en grundläggande förståelse för JDK, JVM och JRE, låt oss undersöka skillnaden mellan dem.
JDK vs JRE vs JVM
Låt oss titta på några av de viktiga skillnaderna mellan JDK, JRE och JVM.
- JDK är för utvecklingsändamål medan JRE är för att köra Java-programmen.
- JDK och JRE innehåller båda JVM så att vi kan köra vårt Java-program.
- JVM är hjärtat i Java-programmeringsspråket och ger plattformsoberoende. .
Just-in-time Compiler (JIT)
Ibland hittar du JIT tillsammans med JVM, JDK och JRE i läroböcker. JIT är en del av JVM som optimerar processen att konvertera byte-kod till maskinspecifikt språk. Den sammanställer liknande byte-koder samtidigt och minskar den totala tiden det tar att sammanställa byte-koden till maskinspecifikt språk.