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?
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 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?
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. |