JDK protiv JRE protiv JVM u Java – Razlika među njima
Ključna razlika između JDK, JRE i JVM
- JDK je komplet za razvoj softvera, dok je JRE softverski paket koji omogućuje Java program za pokretanje, dok je JVM okruženje za izvršavanje bajt koda.
- Puni oblik JDK je Java Development Kit, dok puni oblik JRE jest Java Runtime Environment, dok puni oblik JVM-a jest Java Virtualni stroj.
- JDK i JRE ovise o platformi, dok je JVM neovisan o platformi na razini bajt koda, ali ovisi o implementacijama specifičnim za platformu.
- JDK sadrži alate za razvoj, otklanjanje pogrešaka itd. JRE sadrži biblioteke klasa i druge prateće datoteke, dok alati za razvoj softvera nisu uključeni u JVM.
- JDK dolazi s programom za instalaciju, s druge strane, JRE sadrži samo okruženje za izvršavanje izvornog koda, dok je JVM uključen u softver JDK i JRE.
Što je JDK?
JDK je okruženje za razvoj softvera koje se koristi za izradu apleta i Java aplikacije. Puni oblik JDK je Java Komplet za razvoj. Java programeri ga mogu koristiti na Windows, macOS, Solarisi Linux. JDK im pomaže u kodiranju i pokretanju Java programa. Moguće je instalirati više od jedne JDK verzije na isto računalo.
Što je JRE?
JRE je dio softvera koji je dizajniran za pokretanje drugog softvera. Sadrži biblioteke klasa, klasu učitavača i JVM. Jednostavno rečeno, ako želite trčati Java program koji vam treba JRE. Ako niste programer, ne trebate instalirajte JDK, ali samo JRE za pokretanje Java programa. Ipak, sve JDK verzije dolaze u paketu s Java Runtime Environment, tako da ne morate zasebno preuzimati i instalirati JRE na svoje računalo. Puni oblik JRE je Java Runtime Environment.
Što je JVM?
JVM je motor koji pruža okruženje za izvođenje za pogon Java Kod ili aplikacije. Preobraća se Java bytecode u strojni jezik. JVM je dio Java Run Environment (JRE). Ne može se zasebno preuzeti i instalirati. Da biste instalirali JVM, morate instalirati JRE. Puni oblik JVM-a je Java Virtualni stroj.
U mnogim drugim programskim jezicima prevoditelj proizvodi strojni kod za određeni sustav. Međutim, Java kompajler proizvodi kod za virtualni stroj koji se naziva JVM.
Zašto koristiti JDK?
Evo važnih razloga za korištenje JDK-a:
- JDK sadrži alate potrebne za pisanje Java programe i JRE za njihovo izvršavanje.
- Uključuje kompajler, Java pokretač aplikacija, Appletviewer itd.
- Kompajler pretvara kod napisan u Java u bajt kod.
- Java pokretač aplikacija otvara JRE, učitava potrebnu klasu i izvršava svoju glavnu metodu.
Zašto koristiti JRE?
Evo važnih razloga za korištenje JRE-a:
- JRE sadrži biblioteke klasa, JVM i druge prateće datoteke. Ne sadrži nikakav alat za Java razvoj poput programa za ispravljanje pogrešaka, kompajlera itd.
- Koristi važne klase paketa kao što su math, swingetc, util, lang, awt i runtime biblioteke.
- Ako morate trčati Java apleti, tada JRE mora biti instaliran u vašem sustavu.
Zašto JVM?
Evo važnih razloga za korištenje JVM-a:
- JVM pruža način izvođenja neovisan o platformi Java izvorni kod.
- Ima brojne biblioteke, alate i okvire.
- Kad jednom potrčiš Java možete pokrenuti na bilo kojoj platformi i uštedjeti puno vremena.
- JVM dolazi s JIT (Just-in-Time) kompajlerom koji pretvara Java izvorni kod u strojni jezik niske razine. Stoga radi brže kao obična aplikacija.
Značajke JDK-a
Evo važnih značajki JDK-a:
- Omogućuje vam rukovanje s više ekstenzija u jednom bloku catch.
- JDK uključuje sve značajke koje ima JRE.
- Sadrži razvojne alate kao što su kompajler, debugger itd.
- JDK pruža okruženje za razvoj i izvođenje Java izvorni kod.
- Može se instalirati na Windows, Unix i Mac operativni sustavi.
- Diamond operator se može koristiti za određivanje generičkog tipa sučelja umjesto pisanja točnog.
Značajke JRE
Evo važnih značajki JRE-a:
- Java Runtime Environment je skup alata pomoću kojih se JVM zapravo pokreće.
- JRE sadrži tehnologiju implementacije, uključujući Java Web Start i Java Uključiti.
- Programeri mogu lako pokrenuti izvorni kod u JRE-u, ali on/ona ne može napisati i kompajlirati Java Program.
- Uključuje integracijske biblioteke poput Java Povezivost baze podataka (JDBC), daljinsko pozivanje metode (RMI), Java Sučelje za imenovanje i direktorij (JNDI) i više.
- JRE ima JVM i Java HotSpot klijent virtualnog stroja.
Značajke JVM-a
Evo važnih značajki JVM-a:
- Omogućuje vam pokretanje aplikacija u oblaku ili na vašem uređaju.
- Java Virtualni stroj pretvara bajt kod u kod specifičan za stroj.
- Omogućuje osnovne java funkcije kao što su upravljanje memorijom, sigurnost, sakupljanje smeća i još mnogo toga.
- JVM pokreće program koristeći biblioteke i datoteke koje je dao Java Runtime Environment.
- JDK i JRE sadrže Java Virtualni stroj.
- Može izvršavati java program redak po redak stoga se naziva i tumačem.
- JVM je lako prilagodljiv, na primjer, možete mu dodijeliti minimalnu i maksimalnu memoriju.
- Neovisan je o hardveru i operativnom sustavu. Dakle, možete jednom napisati java program i pokrenuti ga bilo gdje.
Kako JDK funkcionira?
Evo važnih komponenti JDK-a:
- JDK i JRE: JDK omogućuje programerima stvaranje jezgre Java programe koje može pokretati JRE, što uključuje JVM i biblioteke klasa.
- Knjižnice razreda: To je skupina biblioteka koje se dinamički učitavaju Java program može pozvati u vrijeme izvođenja.
- Sastavljači: To je Java program koji prihvaća tekstualnu datoteku programera i kompajlira u nju Java klasna datoteka. To je uobičajeni oblik izlaza koji daje kompilator, a koji sadrži Java bajt kod. U Java, primarni kompilator je Javac.
- Programi za otklanjanje pogrešaka: Debugger je a Java program koji programerima omogućuje testiranje i otklanjanje pogrešaka Java Programi.
- Javadokument: JavaDoc je dokumentacija koju je izradio Sun Microsystems za Java. JavaDoc se može koristiti za generiranje API dokumentacije u HTML datoteci iz izvornog programa
Kako JRE funkcionira?
JRE uz sebe ima instancu JVM-a, bibliotečke klase i razvojne alate. Nakon što napišete i kompajlirate Java koda, prevodilac generira klasnu datoteku koja ima bajt kod.
Evo važnih komponenti JRE-a:
- Učitavači klasa: Učitavač klasa učitava različite klase koje su potrebne za pokretanje a Java program. JVM koristi tri učitavača klase koji se zovu bootstrap učitavač klase, učitavač klase proširenja i učitavač klase sustava.
- Verifikator bajt koda: Verifikator bajt koda provjerava bajt kod tako da kod ne smeta tumaču.
- Tumač: Nakon što se klase učitaju i kod se provjeri, tumač čita kod red po red.
- Vrijeme izvođenja: Vrijeme izvođenja je sustav koji se uglavnom koristi u programiranju za opisivanje vremenskog razdoblja tijekom kojeg se određeni program izvodi.
- Hardware: Nakon što kompajlirate Java izvorni kod, radi na specifičnoj hardverskoj platformi.
Na taj način Java program radi u JRE.
Kako JVM funkcionira?
Evo važnih komponenti JVM-a:
1) Učitavač klase
Učitavač klase je podsustav koji se koristi za učitavanje datoteka klase. Obavlja tri glavne funkcije, tj. Učitavanje, povezivanje i inicijalizacija.
2) Područje metode
JVM Method Area pohranjuje strukturu klase poput metapodataka, koda za Java metode i stalni skup vremena izvođenja.
3) Hrpa
Svi objekti, nizovi i varijable instance pohranjeni su na gomili. Ova memorija se dijeli na više niti.
4) JVM jezični nizovi
Java jezik Stogovi pohranjuju lokalne varijable i njihove djelomične rezultate. Svaka nit ima vlastiti JVM jezični stog, kreiran istodobno s stvaranjem niti. Novi okvir se stvara kada se pozove metoda, a uklanja se po dovršetku procesa pozivanja metode.
5) PC registri
Računalni registri pohranjuju adresu Java instrukcija virtualnog stroja, koja se trenutno izvršava. U Java, svaka nit ima svoj zasebni PC registar.
6) Native Method Stacks
Stogovi izvornih metoda drže instrukcije izvornog koda ovise o izvornoj knjižnici. Dodjeljuje memoriju izvornim hrpama ili koristi bilo koju vrstu hrpe.
7) Izvršni motor
To je vrsta softvera koji se koristi za testiranje softvera, hardvera ili kompletnih sustava. Motor za izvođenje testa nikada ne nosi nikakve informacije o testiranom proizvodu.
8) Sučelje izvorne metode
Sučelje izvorne metode programski je okvir. Dopušta Java kod, koji se izvodi u JVM-u za pozivanje biblioteka i izvornih aplikacija.
9) Knjižnice izvornih metoda
Zavičajne knjižnice su zbirka Zavičajnih knjižnica (C, C++), koji su potrebni izvršnom mehanizmu.
Razlika između JDK, JRE i JVM
Ovdje su glavne razlike između JDK-a naspram JRE-a naspram JVM-a:
JDK | JRE | JVM |
---|---|---|
Puni oblik JDK je Java Komplet za razvoj. | Puni oblik JRE je Java Runtime Environment. | Puni oblik JVM-a je Java Virtualni stroj. |
JDK je komplet za razvoj softvera za razvoj aplikacija Java. | To je softverski paket koji pruža Java biblioteke klasa s potrebnim komponentama za rad Java kodirati. | JVM se izvršava Java bajt kod i pruža okruženje za njegovo izvršavanje. |
JDK ovisi o platformi. | JRE također ovisi o platformi. | JVM je neovisan o platformi. |
Sadrži alate za razvoj, uklanjanje pogrešaka i praćenje java koda. | Sadrži biblioteke klasa i druge prateće datoteke koje JVM zahtijeva za izvođenje programa. | Alati za razvoj softvera nisu uključeni u JVM. |
To je nadskup JRE-a | To je podskup JDK-a. | JVM je podskup JRE-a. |
JDK omogućuje programerima stvaranje Java programe koji se mogu izvršavati i pokretati pomoću JRE i JVM. | JRE je dio Java koji stvara JVM. | To je Java komponenta platforme koja izvršava izvorni kod. |
JDK dolazi s programom za instalaciju. | JRE sadrži samo okruženje za izvršavanje izvornog koda. | JVM uključen u softver JDK i JRE. |