JDK vs JRE vs JVM: Fő különbségek
JDK?
A JDK egy szoftverfejlesztő környezet, amely kisalkalmazások és Java alkalmazások készítésére szolgál. A JDK teljes formája a Java Development Kit. A Java fejlesztők Windows, macOS, Solaris és Linux rendszereken használhatják. A JDK segíti őket a Java programok kódolásában és futtatásában. Több JDK verzió is telepíthető ugyanarra a számítógépre.
Ebben az oktatóanyagban megtudhatja:
- Mi a JDK?
- Mi a JRE?
- Mi a JVM?
- Miért érdemes használni a JDK-t?
- Miért érdemes használni a JRE-t?
- Miért pont a JVM?
- A JDK jellemzői
- A JRE jellemzői
- A JVM jellemzői
- Hogyan működik a JDK?
- Hogyan működik a JRE?
- Hogyan működik a JVM?
- Különbség a JDK, a JRE és a JVM között
Mi az a JRE?
A JRE egy olyan szoftverrész, amelyet más szoftverek futtatására terveztek . Ez tartalmazza az osztálykönyvtárakat, a betöltő osztályt és a JVM-et. Egyszerűbben fogalmazva, ha Java programot akar futtatni, akkor JRE-re van szüksége. Ha nem programozó, akkor nem a JDK-t kell telepítenie, hanem csak a JRE-t a Java programok futtatásához. Bár az összes JDK-verziót Java Runtime Environment-hez mellékelik, így nem kell külön letölteni és telepíteni a JRE-t a PC. A JRE teljes formája a Java Runtime Environment.
Mi a JVM?
A JVM olyan motor, amely futásidejű környezet a Java kód vagy alkalmazások meghajtására. A Java bájtkódot gépi nyelvre konvertálja. A JVM a Java Run Environment (JRE) része. Nem lehet külön letölteni és telepíteni. A JVM telepítéséhez telepítenie kell a JRE-t. A JVM teljes formája a Java Virtual Machine.
Sok más programozási nyelvben a fordító gépi kódot állít elő egy adott rendszer számára, azonban a Java fordító kódot állít elő egy virtuális gép számára, amelyet JVM-nek hívnak.
FŐBB HATÁSOK
- A JDK egy szoftverfejlesztő készlet, míg a JRE egy szoftvercsomag, amely lehetővé teszi a Java program futtatását, mivel a JVM a bytecode végrehajtásának környezete.
- A JDK teljes formája a Java Development Kit, míg a JRE teljes formája a Java Runtime Environment, míg a JVM teljes formája a Java Virtual Machine.
- A JDK platformfüggő, a JRE platformfüggő is, de a JVM platformfüggetlen.
- A JDK eszközöket tartalmaz fejlesztésre, hibakeresésre stb. A JRE osztálykönyvtárakat és egyéb támogató fájlokat tartalmaz, míg szoftverek fejlesztőeszközök nem szerepelnek a JVM-ben.
- A JDK a telepítővel érkezik, másrészt a JRE csak a forráskód futtatásához szükséges környezetet tartalmazza, míg a JVM mind a szoftveres JDK, mind a JRE csomagban van.
Miért érdemes használni a JDK-t?
A JDK használatának fontos okai:
- A JDK a Java programok írásához szükséges eszközöket tartalmaz, és JRE kivégezni őket.
- Tartalmaz egy fordítót, Java alkalmazásindítót, Appletviewert stb.
- A fordító a Java-ban írt kódot bájtkóddá alakítja.
- A Java alkalmazásindító megnyit egy JRE-t, betölti a szükséges osztályt és végrehajtja a fő módszerét.
Miért érdemes használni a JRE-t?
Íme: a JRE használatának fontos okai:
- A JRE osztálykönyvtárakat, JVM-et és egyéb támogató fájlokat tartalmaz. Nem tartalmaz semmilyen eszközt a Java fejlesztéséhez, például hibakeresőt, fordítót stb.
- Fontos csomagosztályokat használ, mint például matematika, swingetc, util, lang, awt és futásidejű könyvtárak.
- Ha Java kisalkalmazásokat kell futtatnia, akkor a JRE-t telepítenie kell a rendszerébe.
Miért a JVM?
Íme a JVM használatának fontos okai:
- A JVM platformfüggetlen módot kínál a Java futtatására forráskód.
- Számos könyvtárral, eszközzel és kerettel rendelkezik.
- A Java program futtatása után bármely platformon futtathat, és sok időt takaríthat meg.
- A JVM JIT (Just-in-Time) fordítóval érkezik, amely a Java forráskódot alacsony szintű gépi nyelvre konvertálja. Ennélfogva gyorsabban fut, mint egy szokásos alkalmazás.
A JDK jellemzői
Itt vannak a JDK fontos jellemzői:
- Lehetővé teszi több kiterjesztés kezelését egyetlen fogási blokkban.
- A JDK tartalmazza a JRE összes funkcióját.
- Fejlesztési eszközöket tartalmaz, például fordítót, hibakeresőt stb.
- A JDK biztosítja a környezetet a Java forráskód fejlesztéséhez és végrehajtásához.
- Telepíthető Windows, Unix és Mac operációs rendszerekre.
- A Diamond operátor felhasználható egy általános típusú felület megadására a pontos írás helyett.
A JRE jellemzői
Itt vannak a JRE fontos jellemzői:
- A Java Runtime Environment olyan eszközkészlet, amelynek segítségével a JVM ténylegesen fut.
- A JRE telepítési technológiát tartalmaz, beleértve a Java Web Start és a Java beépülő modult.
- A fejlesztők könnyen futtathatják a forráskódot a JRE-ben, de nem tudja megírni és lefordítani a Java programot.
- Integrációs könyvtárakat tartalmaz, mint például a Java Database Connectivity (JDBC), a Remote Method Meghívás (RMI), Java elnevezés és Directory Interface (JNDI) és még sok más.
- A JRE rendelkezik JVM és Java HotSpot virtuális gép klienssel.
A JVM jellemzői
Íme a JVM fontos jellemzői:
- Lehetővé teszi alkalmazások futtatását felhőkörnyezetben vagy eszközén.
- A Java Virtual Machine konvertálja a bájtkódot a gépspecifikus kódgá.
- Alapvető java funkciókat biztosít, mint például a memóriakezelés, a biztonság, a szemétgyűjtés és egyebek.
- A JVM a Java Runtime Environment által biztosított könyvtárak és fájlok segítségével futtatja a programot.
- A JDK és a JRE egyaránt tartalmaz Java Virtual Machine-t.
- Soronként futtathatja a java programot, ezért tolmácsnak is hívják.
- A JVM könnyen testreszabható, például lefoglalhat hozzá minimális és maximális memóriát.
- Ez független a hardvertől és az operációs rendszertől. Tehát egyszer írhat egy java programot, és bárhol futtatható.
Hogyan működik a JDK?
Íme a JDK fontosabb összetevői:
- JDK és JRE: A JDK lehetővé teszi a programozók számára, hogy a Java által futtatható alapvető Java programokat hozzanak létre. JRE, amely magában foglalta a JVM-et és az osztálykönyvtárakat.
- Osztálykönyvtárak: Ez egy dinamikusan betölthető könyvtárak egy csoportja, amelyeket a Java program futás közben meghívhat.
- Fordítók: Ez egy Java program, amely elfogadja a fejlesztők szövegfájlját és összeáll Java osztályfájl. Ez a fordító által adott általános kimeneti forma, amely Java bájtkódot tartalmaz. A Java-ban az elsődleges fordító a Javac.
- Debuggers: A Debugger egy Java-program, amely lehetővé teszi a fejlesztők számára a Java-programok tesztelését és hibakeresését.
- JavaDoc: A JavaDoc a Sun Microsystems által a Java számára készített dokumentáció. A JavaDoc használható API-dokumentumok előállítására HTML-fájlokban a forrásprogramból
Hogyan működik a JRE?
A JRE rendelkezik JVM-példánnyal, könyvtári osztályokkal és fejlesztőeszközökkel. A Java-kód írása és fordítása után a fordító generál egy bájtkóddal rendelkező osztályfájlt.
Íme a JRE fontos összetevői:
- Osztályrakodók: Az osztályrakodó különféle osztályokat tölt be, amelyek szükségesek egy Java program futtatásához. A JVM három osztálybetöltőt használ, az úgynevezett bootstrap osztálybetöltőt, a kiterjesztésű osztálybetöltőt és a rendszerosztálybetöltőt.
- Bájtkód-ellenőrző: A bájtkód-ellenőrző a bájtkódot ellenőrzi, hogy a kód ne zavarja az értelmezőt.
- Tolmács: Amint az osztályok betöltődnek, és a kód ellenőrzése megtörtént, az tolmács soronként olvassa a kódot.
- Futásidő: A futási idő olyan rendszer, amelyet főleg a írja le azt az időtartamot, amely alatt egy adott program fut.
- Hardver: Miután lefordította a Java natív kódját, az egy adott hardverplatformon fut.
Ily módon a Java program JRE-ben fut.
Hogyan működik a JVM?
Itt vannak a JVM fontos összetevői:
1) Class Loader
Az class loader egy alrendszer, amelyhez osztályfájlok betöltése. Három fő funkciót lát el, nevezetesen. Betöltés, összekapcsolás és inicializálás.
2) Metódus területe
A JVM Metód terület tárolja az osztály struktúráját, például a metaadatokat, a Java metódusok kódját és az állandó futásidejű készletet.
3) Halom
Az összes objektum, tömb és példányváltozó egy kupacban van tárolva. Ezt a memóriát több szál osztja meg.
4) JVM nyelvi veremek
A Java nyelvi veremek a helyi változókat és részeredményeit tárolják. Minden szálnak megvan a saját JVM nyelvi vereme, amelyet egyidejűleg hoztak létre a szál létrehozásakor. A metódus meghívásakor új keret jön létre, és a metódushívási folyamat befejeztével eltávolításra kerül.
5) PC-regiszterek
A PC-regiszterek tárolják a Java virtuális gép utasításának címét, amely éppen fut. A Java-ban minden szál külön PC-regiszterrel rendelkezik.
6) Natív módszerhalmok
A natív módszerhalmok tartják a natív kód utasításait a natív könyvtár függvényében. Kiosztja a memóriát a natív halmokban, vagy bármilyen típusú halmot használ.
7) Végrehajtó motor
Ez egy olyan szoftver, amelyet szoftverek, hardverek vagy teljes rendszerek tesztelésére használnak. A teszt végrehajtó motor soha nem hordoz semmilyen információt a tesztelt termékről.
8) Native Method interfész
A Native Method Interface egy programozási keretrendszer. Lehetővé teszi, hogy a JVM-ben futó Java-kód könyvtárak és natív alkalmazások által hívható legyen.
9) Natív módszer könyvtárak
A Natív könyvtárak a natív könyvtárak (C, C ++) gyűjteménye, amelyekre az Execution Engine számára szükség van.
Különbség a JDK, a JRE és a JVM között
Itt vannak a fő különbségek a JDK és a JRE és a JVM között:
JDK | JRE | JVM |
A JDK teljes formája a Java Development Kit. | A JRE teljes formája a Java Runtime Environment. | A JVM teljes formája a Java Virtual Machine. |
A JDK egy szoftverfejlesztő készlet Java-alkalmazások fejlesztésére. | Ez egy szoftvercsomag, amely a Java osztály könyvtárak számára biztosítja a Java kód futtatásához szükséges összetevőket. | A JVM végrehajtja a Java bájtkódot, és környezetet biztosít a végrehajtásához. |
A JDK platformfüggő. | A JRE szintén platformfüggő. | A JVM platformfüggetlen. |
Ez eszközöket tartalmaz a java kód fejlesztésére, hibakeresésére és felügyeletére. | Osztálykönyvtárakat és egyéb támogató fájlokat tartalmaz, amelyekre a JVM a program futtatásához szükséges. | A szoftverfejlesztő eszközök nem szerepelnek a JVM-ben. |
Ez a JRE alcsoportja | Ez a JDK részhalmaza. | A JVM a JRE részhalmaza. |
A JDK lehetővé teszi a fejlesztők számára, hogy Java programokat hozzanak létre, amelyeket a JRE és a JVM futtathat és futtathat. | A JRE a Java azon része, amely létrehozza a JVM-et. | A Java platform komponens hajtja végre a forráskódot. |
A JDK a telepítővel együtt érkezik. | A JRE csak a forráskód végrehajtásához tartalmaz környezetet. | A JVM a JDK és a JRE szoftvereket egyaránt tartalmazza. |