JVM (Java Virtual Machine) on abstrakti kone. Se on spesifikaatio, joka tarjoaa ajonaikaisen ympäristön, jossa java-tavukoodi voidaan suorittaa.
JVM:itä on saatavana monille laitteisto- ja ohjelmistoalustoille (eli JVM on alustariippuvainen).
matriisit c-ohjelmoinnissa
Mikä on JVM
Se on:
- Erittely jossa Java-virtuaalikoneen toiminta on määritelty. Toteutustoimittaja on kuitenkin riippumaton algoritmin valinnassa. Sen toteutuksen ovat toteuttaneet Oracle ja muut yritykset.
- Toteutus Sen toteutus tunnetaan nimellä JRE (Java Runtime Environment).
- Ajonaikainen ilmentymä Aina kun kirjoitat java-komennon komentokehotteeseen suorittaaksesi java-luokan, JVM-instanssi luodaan.
Mitä se tekee
JVM suorittaa seuraavan toiminnon:
- Lataa koodia
- Vahvistaa koodin
- Suorittaa koodin
- Tarjoaa ajonaikaisen ympäristön
JVM tarjoaa määritelmät seuraaville:
- Muistialue
- Luokan tiedostomuoto
- Rekisterisarja
- Kerätty roskakasa
- Vakava virheilmoitus jne.
JVM-arkkitehtuuri
Ymmärretään JVM:n sisäinen arkkitehtuuri. Se sisältää luokkalataimen, muistialueen, suoritusmoottorin jne.
1) Classloader
Classloader on JVM:n alijärjestelmä, jota käytetään luokkatiedostojen lataamiseen. Aina kun suoritamme Java-ohjelman, luokanlataaja lataa sen ensin. Javassa on kolme sisäänrakennettua luokanlataajaa.
//Let's see an example to print the classloader name public class ClassLoaderExample { public static void main(String[] args) { // Let's print the classloader name of current class. //Application/System classloader will load this class Class c=ClassLoaderExample.class; System.out.println(c.getClassLoader()); //If we print the classloader name of String, it will print null because it is an //in-built class which is found in rt.jar, so it is loaded by Bootstrap classloader System.out.println(String.class.getClassLoader()); } }Testaa nyt
Lähtö:
sun.misc.Launcher$AppClassLoader@4e0e2f2a null
Nämä ovat Javan tarjoamia sisäisiä luokkalataajia. Jos haluat luoda oman luokanlataajasi, sinun on laajennettava ClassLoader-luokkaa.
2) Luokka(menetelmä) Alue
Class(Method) Area tallentaa luokkakohtaisia rakenteita, kuten ajonaikaisen vakiovarannon, kenttä- ja menetelmätiedot sekä menetelmien koodin.
3) Kasa
Se on ajonaikainen tietoalue, jolle objektit allokoidaan.
java avaa tiedoston
4) Pinoa
Java Stack tallentaa kehyksiä. Se sisältää paikalliset muuttujat ja osatulokset, ja se osallistuu menetelmän kutsumiseen ja palautukseen.
Jokaisella säikeellä on yksityinen JVM-pino, joka luodaan samaan aikaan säikeen kanssa.
Uusi kehys luodaan aina, kun menetelmää kutsutaan. Kehys tuhoutuu, kun sen menetelmän kutsu on valmis.
5) Ohjelmalaskurirekisteri
PC (ohjelmalaskuri) -rekisteri sisältää parhaillaan suoritettavan Java-virtuaalikonekäskyn osoitteen.
6) Native Method Stack
Se sisältää kaikki sovelluksessa käytetyt alkuperäiset menetelmät.
7) Suoritusmoottori
Se sisältää:
8) Java Native Interface
Java Native Interface (JNI) on kehys, joka tarjoaa käyttöliittymän kommunikointiin toisen sovelluksen kanssa, joka on kirjoitettu toisella kielellä, kuten C, C++, Assembly jne. Java käyttää JNI-kehystä tulosteiden lähettämiseen konsoliin tai vuorovaikutukseen käyttöjärjestelmän kirjastojen kanssa.
nukkua javascriptissä