Ką turėtumėte žinoti apie „Java“ virtualią mašiną?



Šiame tinklaraštyje bus išsamiai aprašyta „Java“ virtualios mašinos samprata su jos architektūros komponentais ir pagrindiniais JVM, JRE ir JDK skirtumais.

kalba labai ilgą laiką buvo milžinė IT pramonėje. Jis turi keletą aukščiausio lygio sąvokų, dėl kurių jis yra geresnis nei likusi programavimo kalba. Viena iš tokių sąvokų yra „Java“ virtualioji mašina, šiame straipsnyje mes sužinosime apie įvairius virtuali mašina išsamiai. Toliau pateikiamos šiame tinklaraštyje aptariamos temos:

Kas yra „Java“ virtualioji mašina?

„Java“ virtualioji mašina yra nuo platformos nepriklausoma abstrakčioji mašina, teikianti vykdymo trukmės aplinką, kurioje vykdomas „Java“ baitų kodas.





Tai yra „Java“ vykdymo laiko dalis, kuri konvertuoja „Java“ baitkodą į mašinoje nuskaitomą kalbą. Pagrindinis kuriuos turime „Java“ programoje, iš tikrųjų vadina „Java“ virtuali mašina.

jvm - java virtuali mašina - edureka

Kodėl mums reikia „Java“ virtualiosios mašinos?

Mums reikalinga „Java“ virtuali mašina jos atliekamoms užduotims, kurios yra labai reikalingos bet kokiam „Java“ kūrimui. Toliau pateikiamos kelios užduotys, kurias atlieka „Java“ virtualioji mašina.



  • Įkelia kodą
  • Kodo tikrinimas
  • Kodo vykdymas
  • Tai suteikia programų vykdymo laiko aplinką
  • Atminties sritis
  • Registrų rinkinys
  • Pateikia šiukšlių surinkimo krūvą
  • Pranešimas apie lemtingas klaidas
  • Teikia a klasė Dokumento formatas

Atliekant visas šias operacijas, „Java“ virtualioji mašina yra neatsiejama „Java“ kūrimo dalis. Pabandykime suprasti, kaip tai veikia, naudodamiesi „Java“ virtualiosios mašinos architektūra.

„Java“ virtualiosios mašinos architektūra

„Java“ virtualiosios mašinos architektūra yra gana paprasta, be kitų komponentų, ji turi atminties sritį, klasės krautuvą ir vykdymo variklį. aptarkime kiekvieną iš jų išsamiai.

„ClassLoader“

Tai posistemis, naudojamas klasių failams įkelti. Kai paleidžiame programą „Java“, pirmiausia ją įkelia „ClassLoader“. pagrindinė funkcija apima inicijavimą, susiejimą ir įkėlimą. Toliau pateikiami įmontuoti „Java“ klasių pakrovėjai.



    • Bootstrap „ClassLoader“ - tai yra „Extension ClassLoader“ super klasė, įkelianti failą rt.jar.

      didelių duomenų kūrėjo pareigybės aprašymas
    • Pratęsimas „ClassLoader“ - įkelia kataloge esančius „jar“ failus.

    • Sistema / taikymas „ClassLoader“ - įkelia klasės bylas iš klasės kelio.

    • Pakrovimo operacija - Pirmiausia „classLoader“ įkelia .class failus ir sugeneruoja atitinkamus duomenis dvejetainiu formatu, kuris išsaugomas metodo srityje.

    • Operacijos susiejimas - Įkėlęs jis paruošia, patikrina ir išsprendžia. JVM paskirsto atmintį klasės kintamiesiems ir inicializuoja atmintį pagal numatytąsias reikšmes. Tai užtikrina .class failo teisingumą, o nepavykus patikrinimui gauname vykdymo laiko išimties klaidą.

    • Inicijavimas - Visiems statiniams kintamiesiems priskiriamos jų vertės, apibrėžtos kodų bloke šiame etape.

JVM atmintis

  • Metodo sritis - Joje saugomos kiekvienos klasės struktūros, tokios kaip kodas, lauko duomenys, vykdymo laiko pastovus telkinys, metodo duomenys ir kt.

  • Krūva - Objektai paskirstomi kaupo vykdymo metu.

  • JVM kalbų kaminai - Jame saugomi vietiniai kintamieji ir rezultatai. Tai vaidina svarbų vaidmenį kviečiant ir grąžinant rezultatus. Kai tik pasikviečia metodas, sukuriamas rėmas ir jis sunaikinamas, kai tik baigiasi arba baigiama kviesti.

  • PC registrai - Jis turi vykdomo JVMinstruction adresą arba vietą.

  • Gimtojo metodo kaminai - Visi savieji metodai, naudojami programose, yra savųjų metodų paketuose.

  • Vykdymo variklis - Vykdymo variklyje yra virtualus procesorius, vertėjas ir a JIT sudarytojas.

  • Gimtoji metodika Sąsaja - Tai yra kad numato.

Dabar, kai supratome JVM architektūrą, pažvelkime į vykdymo procesą ir kodo kompiliavimą.

Vykdymo procesas

Šie veiksmai atliekami vykdant ir kompiliuojant „Java“ kodą.

  • Pagrindinis metodas saugomas viename faile, o kiti metodai - skirtinguose failuose.
  • Po kompiliavimo jis pateiks atitinkamus .class failus, kuriuose bus baito kodas be jokio susiejimo, skirtingai nei C.
  • Vykdymo metu, naudojant „Classloader“, klasės failai patikrinami, ar nėra pažeidimų.
  • Po to baitų kodas konvertuojamas į atitinkamą pirminį mašinos kodą. Tai taip pat yra priežastis, kodėl „Java“ yra palyginti lėtesnė.

Dabar, kai žinome, kaip veikia vykdymas, pažvelkime į skirtumą tarp JDK, JRE ir JVM.

hadoop admin vs hadoop kūrėjas

Skirtumas tarp JDK, JRE ir JVM

Toliau pateikiami keli svarbūs skirtumai JDK , JVM ir JRE.

  1. JDK reiškia „Java“ kūrimo rinkinį, o JRE - „Java“ vykdymo laiką.
  2. JDK yra skirtas plėtrai, o JRE - vykdymo laiko aplinkai.
  3. JVM yra būtina JDK ir JRE dalis norint paleisti bet kurią „Java“ programą.
  4. JVM yra neatsiejama „Java“ programavimo dalis ir suteikia platformos nepriklausomumą.

Taip pateksime į šio straipsnio pabaigą, kur išsamiai sužinojome apie „Java“ virtualiąją mašiną. Tikiuosi, kad jums aišku viskas, kas buvo pasidalinta su jumis šioje pamokoje.

Jei radote šį straipsnį „Java virtualioje mašinoje“, apsilankykite „Edureka“ , patikima internetinė mokymosi įmonė, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą, pasklido po visą pasaulį.

Mes norime jums padėti kiekviename žingsnyje ir parengti mokymo programą, skirtą studentams ir specialistams, norintiems būti „Java“ kūrėjais. Kursas sukurtas tam, kad galėtumėte pradėti žaisti „Java“ programavimą ir išmokyti pagrindinių bei pažangių „Java“ koncepcijų kartu su įvairiomis „Java“ sistemomis, tokiomis kaip „Hibernate & Spring“.

Jei kyla klausimų, nedvejodami užduokite visus klausimus „Java Virtual Machine“ komentarų skyriuje, ir mūsų komanda mielai atsakys.