Mikä on JVM?

JVM on spesifikaatio, jossa Java-virtuaalikoneen toiminta kuvataan erityisesti. Algoritmi on kuitenkin itsenäinen identiteetti, jonka valitsee vain toteutuksen tarjoaja, kuten Oracle ja muut tunnetut yritykset. Sellaisena JVM on toteutus, joka tunnetaan nimellä Java Runtime Environment (JRE).

Määritelmä

Se määritellään kuvaukseksi ohjelmistolle, joka tarjoaa runtime-ympäristön koodille ja sen merkittävälle suoritukselle. Toisin sanoen, miten suoritamme Java-ohjelmia - määrittämällä JVM-asetukset ja luottamalla siihen selviytymään ohjelman resursseista suoritusprosessin aikana.

Ymmärtäminen

Java tunnetaan alustasta riippumattomana Java-virtuaalikoneen takia. Kun lähetys tehdään eri tietokoneisiin, joissa eri käyttöjärjestelmissä on JVM, JVM tulkitsee tavukoodin koneentasokieleksi. JVM-ohjelmat on kirjoitettu C-ohjelmointikielellä, kun taas JVM on riippumaton käyttöjärjestelmästä. Se on keskeinen osa Java-arkkitehtuuria.

Tämän lisäksi se vastaa Java-ohjelman vaatiman välttämättömän muistin osoittamisesta. Se on myös vastuussa muistitilan kieltämisestä.

Mitä se tekee?

JVM: n suorittamat tärkeät operaatiot ovat seuraavat:

  • Koodin lataus
  • Koodin tarkistus
  • Koodin suorittaminen
  • Kestoympäristön tarjoaminen

Tämän kaiken lisäksi, se ottaa käyttöön luokittelut luokkatiedostomuodolle, muistialueelle, roskien keräämälle kasalle, rekisterisarjasta, kohtalokkaiden virheiden ilmoittamisesta jne.

JVM-arkkitehtuuri

Otetaan joitain keskeisiä oivalluksia JVM: n sisäisestä arkkitehtuurista, joka koostuu:

1. Classloader

Se on JVM: n osajärjestelmä, jota käytetään luoktatiedostojen lataamiseen. Java-ohjelmaa ajaessaan luokkalataaja lataa sen ensin. Kolme Java-luokan lataajaa ovat seuraavat:

a) Bootstrap ClassLoader

Se on Extension-luokanlataajan superluokka. Se auttaa lataamaan rt.jar-tiedostot, jotka kantavat kaikki luokkatiedostot.

b) Laajennus ClassLoader

Se on System classloaderin vanhempi luokkalataaja ja Bootstrapin lastenluokkaohjelma. Hakemistossa $ JAVA_HOME / jre / lib / ext olevat purkitiedostot voidaan purkaa Extension ClassLoader -sovelluksen kautta.

C) Järjestelmä / Sovellusluokka

Se on Extension-luokanlataajan lapsi, joka tunnetaan myös nimellä Sovellusluokkaohjelma. Classpath-luokan tiedostot voidaan purkaa sen kautta. Classpath, joka on asetettu nykyiseen hakemistoon, voidaan oletuksena muuttaa käyttämällä '-cp' tai '-classpath' -kytkintä.

2.Luokka (menetelmä) -alue

Esiluokan rakenteet, kuten kenttä- ja menetelmätiedot, ajonvakiofoorumi ja menetelmien koodi, tallennetaan luokka (menetelmä) -alueelle. Se on muisti, joka luodaan JVM: n käynnistyksen yhteydessä ja jaetaan kaikkien ketjujen kesken kuten Heap.

3. kasa

Objektit osoitetaan tämän hyödyllisen ajonaikaisen data-alueen kautta. Se on muistipaikka, joka tallentaa esineitä yhdessä esiintymän muuttujien kanssa. Aina kun Java-objekti luodaan, se menee kasaan - muistin alueelle.

4. Pino

Kehysten tallennuksen lisäksi Java Stack pitää muuttujia ja osittaisia ​​tuloksia. Sillä on myös keskeinen rooli menetelmässä, kutsumisessa ja paluussa. Jokainen yksittäinen säie koostuu yksityisestä JVM-pinosta, joka luodaan samanaikaisesti säieen kanssa. Aina kun menetelmä laajenee, luodaan uusi kehys, joka puristetaan, kun menetelmän kutsuminen valmistuu.

5. Ohjelmalaskurirekisteri (PC)

PC-rekisteri sisältää JVM-käskyosoitteen sen suorittamishetkellä. Seuraa ohjeita, sillä on arvo jokaiselle ohjeelle, jota ei ole määritelty natiivimenetelmille.

6. Alkuperäisen menetelmän pino

Sovelluksissa käytetyt natiivimenetelmät ovat osa omaperäisten menetelmien pinoa. Nämä menetelmät on kirjoitettu muilla kielillä kuin Java. Jokaiseen säieeseen liitetyt JVM-toteutukset eivät voi luottaa tavanomaisiin pinoihin eivätkä voi ladata alkuperäisiä menetelmiä. Tarkemmin sanottuna se on samanlainen kuin pino, mutta sitä käytetään luonnollisissa menetelmissä.

7. Moottori

Koska se on JVM: n avain, se kommunikoi sen eri muistialueiden kanssa. Tämä sisältää:

a. Roskankerääjä

Tällä on tärkeä rooli JVM: n dynaamisessa muistinhallintajärjestelmässä. Muisti, joka on varattu eikä johon enää viitata millään tavoitettavissa olevilla Java-objekteilla, vapautetaan Roskakorin kautta.

b. Tulkki

Se suorittaa ohjeet luettuaan tavukoodivirran.

C. Just-In-Time (JIT) -kääntäjä

JIT mahdollistaa suorituskyvyn parantamisen, JIT-kääntäjä kääntää tavukoodin osia samanlaisilla toiminnoilla samanaikaisesti. Se auttaa vähentämään kokoamisprosessille tarvittavaa aikaa.

8. Java-alkuperäinen käyttöliittymä (JNI)

Muilla kielillä kirjoitetut sovellukset, kuten C, C ++, Assembly jne. Voidaan liittää JNI: n toimittaman käyttöliittymän kautta. Java käyttää JNI-kehystä vuorovaikutuksessa OS-kirjastojen kanssa tai lähettääksesi tuloksia konsoliin.

Mitä hyötyä on JVM: stä?

JVM: llä on kaksi päätoimintoa: sallia Java-ohjelmien suorittaminen missä tahansa laitteessa tai käyttöjärjestelmässä (tunnetaan nimellä ”Kirjoita kerran, aja minne tahansa” -periaate) sekä hallita ja optimoida ohjelman muisti.

Hyödyt ja haitat

Java-ohjelmat toteutetaan tarkoituksenmukaisesti JVM: n kautta. Tavukoodi - välikieliä käytetään Java-ohjelmien kääntämiseen ja suoritetaan sitten JVM: n kautta. Jokainen yksittäinen ohjelma, joka on käännetty tavukoodiksi, voidaan suorittaa millä tahansa JVM: n käyttämällä alustalla. Tämä mahdollistaa Java-ohjelmistojen tehokkuuden ja yhteensopivuuden erilaisten tietokonealustojen suhteen. JVM: llä on muutamia merkittäviä etuja ja haittoja, jotka kaikkien kehittäjien tulee punnita huolellisesti ennen investointeja Java-kehitykseen.

1. Turvallisuus

JVM: n tietoturvapäivityksien avulla ohjelmoijat voivat kirjoittaa tehokkaasti huippuluokan turvattuja Java-ohjelmia. Se antaa käyttöjärjestelmän resursseille mahdollisuuden tunnistaa haittaohjelmat ja auttaa myös estämään sitä.

2. Suorituskyky

JVM: llä toimivat Java-ohjelmat tarjoavat todennäköisesti hitaamman suorituksen verrattuna C ++-kirjoitettuihin ohjelmiin. Tämä johtuu koodin optimoinnista, joka luottaa liikaa erilaisiin järjestelmäkohtaisiin ominaisuuksiin. Java-tavukoodia ei voida myöskään optimoida tietylle laitteistojoukolle, koska se on järjestelmäneutraali.

3. Oikeellisuus

Oikea on ohjelma, joka toimii tehokkaasti ja täyttää käyttäjän odotukset täysimääräisesti. JVM: n sisäänrakennetut ominaisuudet mahdollistavat sen toiminnan oikein ja virheetöntä.

Miksi meidän pitäisi käyttää JVM: ää?

Huolimatta Java-syntaktisesta koodista, JVM voi toimia useilla eri kieliohjelmilla. Alla on lueteltu muutamia syitä, miksi sitä käytetään niin laajasti ja miksi sitä käytetään eri alustoilla:

Se käyttää kasa-muistia: kasa-muisti on ydinosa, jota käytetään dynaamiseen muistin allokointiin luokkien määrittelemiseen ja objektien alustamiseen, ja koska JVM tukee kasa-muistia, se hyväksytään laajasti.

Suojauksen tarjoaminen koodin etäpaikkakunnalle: JVM-kehys on suunniteltu siten, että etäsovellus suoritetaan helposti. Tätä teoriaa noudatetaan Java-sovelman suorittamisessa.

johtopäätös

Se, että JVM toimii useissa käyttöjärjestelmissä, antaa sille peukkua teknologia-alueella. Käyttämällä sitä Windowsissa, Linuxissa ja muissa käyttöjärjestelmissä, sen avulla voidaan muuntaa tavukoodi riippumatta laitteistosta ja suoritettavasta käyttöjärjestelmästä. Lisäksi sen kyky tarjota suojausta isäntätietokoneelle suojaamalla heidän tietojaan ja ohjelmiaan on toinen syy siihen, miksi JVM on menestynyt niin menneisyydessä ja jatkossakin hallitsevana tulevaisuudessa.

Suositellut artikkelit

Tämä on opas kohtaan Mikä on JVM (Java Virtual Machine). Tässä keskustelimme peruskäsitteistä JVM: n arkkitehtuurin ja käyttötarkoitusten luettelon kanssa. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -

  1. Paras Javascript-kehys
  2. Onko Python-objekti suuntautunut
  3. C ++: n sovellukset todellisessa maailmassa
  4. Ura ASP.NET: ssä
  5. JRE vs. JVM | 8 parasta eroa (infografia) kanssa