Mitä sinun pitäisi tietää Java-virtuaalikoneesta?



Tämä blogi kattaa Java-virtuaalikoneen käsitteen yksityiskohtaisesti sen arkkitehtuurin osilla ja keskeisillä eroilla JVM: n, JRE: n ja JDK: n välillä

kieli on ollut jättiläinen IT-alalla jo pitkään. Siinä on joitain huippuluokan käsitteitä, jotka tekevät siitä paremman kuin muu ohjelmointikieli. Yksi tällainen käsite on Java-virtuaalikone, tässä artikkelissa opimme virtuaalikone yksityiskohtaisesti. Tässä blogissa käsitellään seuraavia aiheita:

Mikä on Java-virtuaalikone?

Java-virtuaalikone on alustasta riippumaton abstrakti kone, joka tarjoaa ajonaikaisen ympäristön, jossa Java-tavukoodi suoritetaan.





Se on osa Java-ajoaikaympäristöä, joka muuntaa Java-tavukoodin koneellisesti luettavaksi kieleksi. Pää joka meillä on Java-ohjelmassa, sitä itse kutsutaan Java-virtuaalikoneella.

jvm - java virtuaalikone - edureka

Miksi tarvitsemme Java-virtuaalikoneen?

Tarvitsemme Java-virtuaalikoneen sen suorittamiin tehtäviin, jotka ovat erittäin välttämättömiä kaikessa Java-kehityksessä. Seuraavassa on muutama Java-virtuaalikoneen tehtävä.



  • Lataa koodi
  • Koodin vahvistus
  • Koodin suorittaminen
  • Se tarjoaa ajoaikaympäristön sovelluksille
  • Muistialue
  • Rekisterisarja
  • Tarjoaa roskakorin kasan
  • Kuolemaan johtaneista virheistä ilmoittaminen
  • Tarjoaa a luokassa tiedosto muoto

Kaikilla näillä toiminnoilla Java-virtuaalikone on olennainen osa Java-kehitystä. Yritetään ymmärtää, miten se toimii Java-virtuaalikonearkkitehtuurin avulla.

Java-virtuaalikonearkkitehtuuri

Java-virtuaalikonearkkitehtuuri on melko yksinkertainen, sillä siinä on muistialue, luokan latauslaite ja suoritusmoottori muiden komponenttien joukossa. keskustelkaamme niistä jokaisesta yksityiskohtaisesti.

ClassLoader

Se on alijärjestelmä, jota käytetään luokan tiedostojen lataamiseen. Aina kun suoritamme ohjelmaa Java-sovelluksessa, ClassLoader lataa sen ensin. päätoiminto sisältää alustamisen, linkittämisen ja lataamisen. Seuraavat ovat Java: n sisäänrakennettuja luokkakuormaajia.



    • Bootstrap ClassLoader - Extension ClassLoader -superluokka lataa rt.jar-tiedoston.

      java merkkijono split regex useita erottimia
    • Laajennus ClassLoader - Se lataa hakemistossa olevat purkitiedostot.

    • Järjestelmä / sovellus ClassLoader - Se lataa luokkatiedostot luokan polulta.

    • Lataustoiminto - Ensin classLoader lataa .class-tiedostot ja luo vastaavat tiedot binaarimuodossa, joka tallennetaan menetelmäalueelle.

    • Toiminnan linkittäminen - Lataamisen jälkeen se valmistelee, tarkistaa ja tekee tarkkuuden. JVM allokoi muistin luokan muuttujille ja alustaa muistin oletusarvoihin. Se varmistaa .class-tiedoston oikeellisuuden ja kun vahvistus epäonnistuu, saamme suorituksenaikaisen poikkeuksen virheen.

    • Alustus - Kaikille staattisille muuttujille määritetään niiden arvot, jotka määritetään koodilohkossa tässä vaiheessa.

JVM-muisti

  • Menetelmäalue - Se tallentaa kunkin luokan rakenteet, kuten koodin, kenttätiedot, ajonaikaisen vakiopoolin, menetelmätiedot jne.

  • Kasa - Objektit varataan kasan ajonaikana.

  • JVM-kielipinot - Se tallentaa paikalliset muuttujat ja tulokset. Sillä on tärkeä rooli tulosten hakemisessa ja palauttamisessa. Aina kun menetelmää kutsutaan, kehys luodaan ja tuhotaan heti, kun kutsu päättyy tai on valmis.

  • PC-rekisterit - Siinä on suoritettavan JVMinstruction-osoitteen osoite.

  • Alkuperäisen menetelmän pinot - Kaikki sovelluksissa käytetyt natiivimetodit ovat läsnä natiivimenetelmäpinoissa.

  • Suoritusmoottori - Suoritusmoottori sisältää virtuaalisen prosessorin, tulkin ja a JIT kääntäjä.

  • Alkuperäinen menetelmä Käyttöliittymä - Se on joka tarjoaa.

Nyt kun olemme ymmärtäneet JVM: n arkkitehtuurin, katsotaanpa suorituksen prosessi ja koodin kokoaminen.

Suoritusprosessi

Seuraavat vaiheet suoritetaan Java-koodin suorittamisen ja kääntämisen aikana.

  • Päämenetelmä tallennetaan yhteen tiedostoon ja muut menetelmät eri tiedostoihin.
  • Käännöksen jälkeen se tarjoaa vastaavat .class-tiedostot, joilla on tavukoodi ilman linkitystä, toisin kuin C.
  • Suorituksen aikana luokan tiedostot tarkistetaan mahdollisten rikkomusten varalta Classloaderilla.
  • Tämän jälkeen tavukoodi muunnetaan vastaavaksi alkuperäiseksi konekoodiksi. Tämä on myös syy siihen, miksi Java on suhteellisen hitaampi.

Nyt kun tiedämme kuinka toteutus toimii, katsotaanpa JDK: n, JRE: n ja JVM: n ero.

on maisterin tutkinto jatko-opiskelija

JDK: n, JRE: n ja JVM: n ero

Seuraavassa on muutamia tärkeitä eroja JDK , JVM ja JRE.

  1. JDK tarkoittaa Java-kehityspakettia ja JRE tarkoittaa Java-ajonaikaisia ​​ympäristöjä.
  2. JDK on kehitystä varten, kun taas JRE on ajoaikaympäristöä.
  3. JVM on olennainen osa JDK: ta ja JRE: tä minkä tahansa Java-ohjelman ajamiseksi.
  4. JVM on olennainen osa Java-ohjelmointia ja tarjoaa alustan riippumattomuuden.

Tämä tuo meidät tämän artikkelin loppuun, jossa olemme oppineet yksityiskohtaisesti Java-virtuaalikoneesta. Toivon, että olet selvillä kaikesta, mitä sinulle on jaettu tässä opetusohjelmassa.

Jos löysit tämän artikkelin aiheesta 'Java Virtual Machine', tutustu Edurekaan , luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, levinneenä ympäri maailmaa.

Autamme sinua matkasi jokaisessa vaiheessa ja keksimme opetussuunnitelman, joka on tarkoitettu opiskelijoille ja ammattilaisille, jotka haluavat olla Java-kehittäjiä. Kurssi on suunniteltu antamaan sinulle etumatka Java-ohjelmointiin ja kouluttamaan sekä ydin- että edistyneitä Java-konsepteja sekä erilaisia ​​Java-kehyksiä, kuten Hibernate & Spring.

Jos kohtaat kysymyksiä, kysy rohkeasti 'Java Virtual Machine' -kommenttiosasta, ja tiimimme vastaa mielellään.