JDK vs JRE vs JVM i Java - Forskellen mellem dem

Nรธgleforskel mellem JDK, JRE og JVM

  • JDK er et softwareudviklingssรฆt, hvorimod JRE er et softwarebundt, der tillader det Java program til at kรธre, hvorimod JVM er et miljรธ til at udfรธre bytecode.
  • Den fulde form for JDK er Java Development Kit, mens den fulde form af JRE er Java Runtime Environment, mens den fulde form for JVM er Java Virtuel maskine.
  • JDK og JRE er platform-afhรฆngige, mens JVM er platform-uafhรฆngig pรฅ bytekode-niveau, men afhรฆnger af platform-specifikke implementeringer.
  • JDK indeholder vรฆrktรธjer til udvikling, debugging osv. JRE indeholder klassebiblioteker og andre understรธttende filer, hvorimod softwareudviklingsvรฆrktรธjer ikke er inkluderet i JVM.
  • JDK kommer med installationsprogrammet, pรฅ den anden side indeholder JRE kun miljรธet til at udfรธre kildekode, mens JVM er bundtet i bรฅde software JDK og JRE.

Hvad er JDK?

JDK er et softwareudviklingsmiljรธ, der bruges til at lave applets og Java applikationer. Den fulde form for JDK er Java Udviklingssรฆt. Java udviklere kan bruge det pรฅ Windows, macOS, Solarisog Linux. JDK hjรฆlper dem med at kode og kรธre Java programmer. Det er muligt at installere mere end รฉn JDK-version pรฅ samme computer.

Hvad er JRE?

JRE er et stykke software, der er designet til at kรธre anden software. Den indeholder klassebibliotekerne, loader-klassen og JVM. Kort sagt, hvis du vil lรธbe Java program du har brug for JRE. Hvis du ikke er programmรธr, behรธver du det ikke installer JDK, men bare JRE at kรธre Java programmer. Dog medfรธlger alle JDK-versioner Java Runtime Environment, sรฅ du behรธver ikke at downloade og installere JRE separat pรฅ din pc. Den fulde form for JRE er Java Runtime miljรธ.

Hvad er JVM?

JVM er en motor, der giver et runtime-miljรธ til at drive Java Kode eller applikationer. Det konverterer Java bytekode til maskinsprog. JVM er en del af Java Kรธr miljรธ (JRE). Det kan ikke downloades og installeres separat. For at installere JVM skal du installere JRE. Den fulde form for JVM er Java Virtual Machine.

I mange andre programmeringssprog producerer compileren maskinkode til et specifikt system. Imidlertid, Java compiler producerer kode til en virtuel maskine, som kaldes JVM.

Hvorfor bruge JDK?

Her er de vigtige grunde til at bruge JDK:

  • JDK indeholder vรฆrktรธjer, der krรฆves for at skrive Java programmer og JRE til at udfรธre dem.
  • Det inkluderer en compiler, Java applikationsstarter, Appletviewer osv.
  • Compiler konverterer kode skrevet ind Java ind i byte-kode.
  • Java programstarteren รฅbner en JRE, indlรฆser den nรธdvendige klasse og udfรธrer dens hovedmetode.

Hvorfor bruge JRE?

Her er de vigtige grunde til at bruge JRE:

  • JRE indeholder klassebiblioteker, JVM og andre understรธttende filer. Den indeholder ikke noget vรฆrktรธj til Java udvikling som en debugger, compiler osv.
  • Den bruger vigtige pakkeklasser som matematik, swingetc, util, lang, awt og runtime-biblioteker.
  • Hvis du skal lรธbe Java applets, sรฅ skal JRE vรฆre installeret pรฅ dit system.

Hvorfor JVM?

Her er de vigtige grunde til at bruge JVM:

  • JVM giver en platformsuafhรฆngig mรฅde at eksekvere pรฅ Java kildekode.
  • Det har adskillige biblioteker, vรฆrktรธjer og rammer.
  • Nรฅr du lรธber Java program, kan du kรธre pรฅ enhver platform og spare masser af tid.
  • JVM kommer med JIT (Just-in-Time) compiler, der konverterer Java kildekode til maskinsprog pรฅ lavt niveau. Derfor kรธrer den hurtigere som en almindelig applikation.

Funktioner i JDK

Her er de vigtige funktioner i JDK:

  • Det giver dig mulighed for at hรฅndtere flere udvidelser i en enkelt fangblok.
  • JDK inkluderer alle funktioner, som JRE har.
  • Den indeholder udviklingsvรฆrktรธjer sรฅsom en compiler, debugger osv.
  • JDK giver miljรธet til at udvikle og udfรธre Java kildekode.
  • Den kan installeres pรฅ Windows, Unix og Mac-operativsystemer.
  • Diamantoperator kan bruges til at specificere en generisk type grรฆnseflade i stedet for at skrive den nรธjagtige.

Funktioner af JRE

Her er de vigtige funktioner i JRE:

  • Java Runtime Environment er et sรฆt vรฆrktรธjer, som JVM'en rent faktisk kรธrer med.
  • JRE indeholder implementeringsteknologi, herunder Java Web Start og Java Plug-in.
  • Udviklere kan nemt kรธre kildekoden i JRE, men han/hun kan ikke skrive og kompilere Java program.
  • Det inkluderer integrationsbiblioteker som Java Database Connectivity (JDBC), Remote Method Invocation (RMI), Java Navngivning og Directory Interface (JNDI) og mere.
  • JRE har JVM og Java HotSpot virtuel maskine-klient.

Funktioner i JVM

Her er de vigtige funktioner i JVM:

  • Det giver dig mulighed for at kรธre applikationer i et skymiljรธ eller pรฅ din enhed.
  • Java Virtuel maskine konverterer bytekode til den maskinspecifikke kode.
  • Det giver grundlรฆggende java-funktioner som hukommelsesstyring, sikkerhed, affaldsindsamling og mere.
  • JVM kรธrer programmet ved at bruge biblioteker og filer givet af Java Runtime miljรธ.
  • JDK og JRE indeholder begge Java Virtuel maskine.
  • Det kan udfรธre java-programmet linje for linje, derfor kaldes det ogsรฅ fortolker.
  • JVM er let at tilpasse for eksempel, du kan tildele minimum og maksimum hukommelse til det.
  • Den er uafhรฆngig af hardware og operativsystem. Sรฅ du kan skrive et java-program รฉn gang og kรธre hvor som helst.

Hvordan fungerer JDK?

JDK funktioner
JDK funktionalitet

Her er de vigtige komponenter i JDK:

  • JDK og JRE: JDK gรธr det muligt for programmรธrer at skabe kerne Java programmer, der kan kรธres af JRE, som inkluderede JVM og klassebiblioteker.
  • Klassebiblioteker: Det er en gruppe af dynamisk indlรฆsbare biblioteker, der Java programmet kan kalde pรฅ kรธretid.
  • Kompilere: Det er et Java program, der accepterer tekstfil fra udviklere og kompilerer til Java klasse fil. Det er den almindelige form for output givet af compiler, som indeholder Java byte kode. I Java, er den primรฆre compiler Javac.
  • Debuggere: Debugger er en Java program, der lader udviklere teste og fejlfinde Java programmer.
  • JavaDok: JavaDoc er dokumentation lavet af Sun Microsystems for Java. JavaDoc kan bruges til at generere API-dokumentation i HTML-fil fra kildeprogrammet

Hvordan fungerer JRE?

JRE funktioner

JRE funktionalitet

JRE har en forekomst af JVM med sig, biblioteksklasser og udviklingsvรฆrktรธjer. Nรฅr du skriver og kompilerer Java kode, genererer compileren en klassefil med bytekode.

Her er de vigtige komponenter i JRE:

  • Klasselรฆssere: Klasseindlรฆseren indlรฆser forskellige klasser, der er nรธdvendige for at kรธre en Java program. JVM bruger tre klasseindlรฆsere kaldet bootstrap-klasseindlรฆser, udvidelsesklasseindlรฆser og systemklasseindlรฆser.
  • Bytekodebekrรฆftelse: Byte code verifier verificerer bytekoden, sรฅ koden ikke forstyrrer tolken.
  • Tolk: Nรฅr klasserne er indlรฆst, og koden er verificeret, lรฆser tolken koden linje for linje.
  • Kรธr-tid: Run-time er et system, der hovedsageligt bruges i programmering til at beskrive den periode, hvor et bestemt program kรธrer.
  • Hardware: Nรฅr du kompilerer Java native kode, den kรธrer pรฅ en bestemt hardwareplatform.

Pรฅ denne mรฅde Java programmet kรธrer i JRE.

Hvordan fungerer JVM?

JVM funktioner

JVM funktionalitet

Her er de vigtige komponenter i JVM:

1) Klasselรฆsser

Klasseindlรฆseren er et undersystem, der bruges til at indlรฆse klassefiler. Den udfรธrer tre hovedfunktioner, dvs. Indlรฆsning, sammenkรฆdning og initialisering.

2) Metodeomrรฅde

JVM Method Area gemmer struktur af klasse som metadata, koden til Java metoder og den konstante runtime-pulje.

3) Hobe

Alle objekter, arrays og instansvariabler er gemt i en heap. Denne hukommelse deles pรฅ tvรฆrs af flere trรฅde.

4) JVM sprog stakke

Java sprogstakke gemmer lokale variabler og dets delvise resultater. Hver eneste trรฅd har sin egen JVM-sprogstak, der oprettes samtidig med, at trรฅden oprettes. En ny ramme oprettes, nรฅr metoden kaldes, og den fjernes, nรฅr metodekaldsprocessen er fuldfรธrt.

5) PC-registre

PC-registre gemmer adressen pรฅ Java virtuel maskininstruktion, som i รธjeblikket udfรธres. I Java, hver trรฅd har sit separate pc-register.

6) Native Method Stacks

Native metodestakke indeholder instruktionen af โ€‹โ€‹native kode afhรฆnger af det native bibliotek. Den allokerer hukommelse til indfรธdte heaps eller bruger enhver form for stak.

7) Udfรธrelsesmotor

Det er en type software, der bruges til at teste software, hardware eller komplette systemer. Testudfรธrelsesmotoren bรฆrer aldrig nogen information om det testede produkt.

8) Native Method-grรฆnseflade

Native Method Interface er en programmeringsramme. Det tillader Java kode, som kรธrer i en JVM til at kalde af biblioteker og native applikationer.

9) Native metodebiblioteker

Native Libraries er en samling af Native Libraries (C, C++), som er nรธdvendige for udfรธrelsesmotoren.

Forskellen mellem JDK, JRE og JVM

Her er de stรธrste forskelle mellem JDK vs. JRE vs. JVM:

JDK JRE FMV
Den fulde form for JDK er Java Udviklingssรฆt. Den fulde form for JRE er Java Runtime miljรธ. Den fulde form for JVM er Java Virtuel maskine.
JDK er et softwareudviklingssรฆt til at udvikle applikationer i Java. Det er en softwarepakke, der giver Java klassebiblioteker med nรธdvendige komponenter til at kรธre Java kode. JVM udfรธrer Java byte-kode og giver et miljรธ til at udfรธre den.
JDK er platformsafhรฆngig. JRE er ogsรฅ platformsafhรฆngig. JVM er platform-uafhรฆngig.
Den indeholder vรฆrktรธjer til udvikling, fejlretning og overvรฅgning af java-kode. Den indeholder klassebiblioteker og andre understรธttende filer, som JVM krรฆver for at kรธre programmet. Softwareudviklingsvรฆrktรธjer er ikke inkluderet i JVM.
Det er supersรฆttet af JRE Det er delmรฆngden af โ€‹โ€‹JDK. JVM er en delmรฆngde af JRE.
JDK gรธr det muligt for udviklere at skabe Java programmer, der kan udfรธres og kรธres af JRE og JVM. JRE er en del af Java der skaber JVM. Det er Java platformskomponent, der udfรธrer kildekode.
JDK fรธlger med installationsprogrammet. JRE indeholder kun miljรธ til at udfรธre kildekode. JVM bundtet i bรฅde software JDK og JRE.

Opsummer dette indlรฆg med: