Mit kell tudni a Java virtuális gépről?

Ez a blog részletesen bemutatja a java virtuális gép fogalmát, az architektúra összetevőivel és a JVM, JRE és JDK közötti legfontosabb különbségekkel.

a nyelv nagyon hosszú ideje óriási jelentőségű az informatikai iparban. Van néhány csúcskategóriás fogalma, amelyek jobbá teszik, mint a többi programozási nyelv. Az egyik ilyen koncepció a Java virtuális gép, ebben a cikkben megismerjük a virtuális gép részletesen. A következő témaköröket tárgyaljuk ebben a blogban:



Mi a Java virtuális gép?

A Java virtuális gép egy platformfüggetlen absztrakt gép, amely futási környezetet biztosít a Java bájtkód futtatásához.



Ez a Java futásidejű környezet része, amely a Java bájtkódot géppel olvasható nyelvre konvertálja. A fő hogy mi van egy Java programban, valójában a Java virtuális gép hívja meg.

jvm - java virtuális gép - edureka

Miért van szükség Java virtuális gépre?

Szükségünk van a Java virtuális gépre az általa végrehajtott feladatokhoz, amelyek rendkívül szükségesek a Java-val kapcsolatos bármilyen fejlesztéshez. Az alábbiakban bemutatunk néhány olyan feladatot, amelyet a Java virtuális gép végez.



  • Betölti a kódot
  • Kódellenőrzés
  • A kód végrehajtása
  • Ez biztosítja az alkalmazások futási idejű környezetét
  • Memória terület
  • Regisztráció készlet
  • Szemétgyűjtő kupacot biztosít
  • A végzetes hibák jelentése
  • Biztosítja a osztály fájlformátum

Mindezen műveleteknél a Java virtuális gép a Java fejlesztésének szerves része. Próbáljuk megérteni a működését a Java virtuális gép architektúra segítségével.

Java virtuális gép architektúra

A Java virtuális gép architektúrája meglehetősen egyszerű, a memória területén, az osztály betöltőjével és a végrehajtó motorral rendelkezik. beszéljük meg mindegyiket részletesen.

ClassLoader

Ez egy alrendszer, amelyet osztályfájlok betöltésére használnak. Amikor egy programot Java-ban futtatunk, azt először a ClassLoader tölti be. a fő funkció magában foglalja az inicializálást, a linkelést és a betöltést. A következők a Java beépített osztályterjesztői.



    • Bootstrap ClassLoader - A ClassLoader kiterjesztés szuper osztálya tölti be az rt.jar fájlt.

    • Kiterjesztés ClassLoader - Betölti a könyvtárban található jar fájlokat.

    • Rendszer / alkalmazás ClassLoader - Betölti az osztályfájlokat az osztályútvonalról.

    • Betöltési művelet - Először a classLoader betölti a .class fájlokat, és létrehozza a megfelelő adatokat a bináris formátumban, amelyet a metódus területre mentenek.

    • Művelet összekapcsolása - Betöltés után előkészíti, ellenőrzi és megoldja a felbontást. A JVM lefoglalja a memóriát az osztályváltozók számára, és inicializálja a memóriát az alapértelmezett értékekre. Biztosítja a .class fájl helyességét, és amikor az ellenőrzés sikertelen, akkor a futásidejű kivétel hibát kapjuk.

      típusú keretek a szelénben
    • Inicializálás - Az összes statikus változóhoz hozzárendeljük az ebben a fázisban a kódblokkban meghatározott értékeket.

JVM memória

  • Módszer - Tárolja az egyes osztályok struktúráit, például a kódot, a terepi adatokat, a futásidejű állandó készletet, a módszer adatait stb.

  • Halom - Az objektumok a halom futásidején vannak kiosztva.

  • JVM nyelvhalmazok - Helyi változókat és eredményeket tárol. Fontos szerepet játszik az eredmények hivatkozásában és visszaadásában. Amikor egy metódust hívnak meg, egy keret jön létre és megsemmisül, amint a meghívás befejeződik vagy befejeződik.

  • PC regiszterek - Meg van adva a végrehajtandó JVMinstruction címe vagy helye.

    mély vs sekély másolat java
  • Natív módszer verem - Az alkalmazásokban használt összes natív módszer jelen van a natív módszer halmokban.

  • Végrehajtó motor - A végrehajtó motor tartalmaz egy virtuális processzort, egy tolmácsot és egy JIT fordítóprogram.

  • Natív módszer Felület - Ez egy amely biztosítja.

Most, hogy megértettük a JVM architektúráját, vessünk egy pillantást a végrehajtási folyamatra és a kód összeállítására.

Végrehajtási folyamat

A következő lépések egy Java-kód futtatása és fordítása közben történnek.

  • A fő módszert egyetlen fájlban, más módszereket pedig különböző fájlokban tárolják.
  • A fordítás után megadja a megfelelő .class fájlokat, amelyek a bájtkóddal minden összekapcsolás nélkül rendelkeznek, ellentétben a C-vel.
  • A végrehajtás során az osztályfájlokat a Classloader segítségével ellenőrzik az esetleges jogsértésekre.
  • Ezt követően a bájtkód átalakításra kerül a megfelelő natív gépkóddá. Ez az oka annak, hogy a Java viszonylag lassabb.

Most, hogy tudjuk, hogyan működik a végrehajtás, vessünk egy pillantást a JDK, a JRE és a JVM közötti különbségre.

Különbség a JDK, a JRE és a JVM között

Az alábbiakban néhány fontos különbség van JDK , JVM és JRE.

  1. A JDK a Java fejlesztőkészletet, a JRE pedig a Java futási környezetet jelenti.
  2. A JDK a fejlesztéshez, míg a JRE a futási környezethez.
  3. A JVM elengedhetetlen része a JDK-nak és a JRE-nek bármely Java program futtatásához.
  4. A JVM a Java programozás szerves része és platformfüggetlenséget biztosít.

Ezzel a cikk végére jutunk, ahol részletesen megismertük a Java virtuális gépet. Remélem, tisztában van azzal, amit megosztott veled ebben az oktatóanyagban.

Ha relevánsnak találta ezt a cikket a „Java virtuális gépről”, nézze meg az Edureka oldalt , egy megbízható online tanulási társaság, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon.

Azért vagyunk itt, hogy segítsünk az utazás minden lépésében, és kidolgozzunk egy tananyagot, amelyet olyan hallgatók és szakemberek számára tervezünk, akik Java fejlesztők szeretnének lenni. A tanfolyamot úgy tervezték meg, hogy előrelépést nyújtson a Java programozásban, és képezze mind az alapvető, mind a fejlett Java koncepciókhoz, valamint a különböző Java keretrendszerekhez, például a Hibernate & Spring.

Ha bármilyen kérdése merülne fel, nyugodtan tegye fel minden kérdését a „Java Virtual Machine” megjegyzés rovatában, és csapatunk örömmel válaszol.