Java Virtual Machine (JVM), Ero JDK, JRE & JVM – Core Java
Java on korkean tason ohjelmointikieli. Korkealla kielellä kirjoitettua ohjelmaa ei voi ajaa millään koneella suoraan. Ensinnäkin se on käännettävä kyseiselle konekielelle. Javac-kääntäjä tekee tämän asian, se vie java-ohjelman (.java-tiedosto, joka sisältää lähdekoodia) ja kääntää sen konekoodiksi (kutsutaan tavukoodiksi tai .luokan tiedosto).,
Java Virtual Machine (JVM) on virtuaalikone, joka sijaitsee oikeassa koneessa (tietokoneessa) ja JVM: n konekieli on tavukoodi. Tämä helpottaa compiler, koska se on luo tavu koodi JVM pikemminkin kuin eri kone-koodin kunkin kone. JVM suorittaa kääntäjän tuottaman tavukoodin ja tuottaa tuotoksen. JVM on se, joka tekee java-alustasta itsenäisen.
niin, nyt ymmärsimme, että JVM: n ensisijainen tehtävä on suorittaa compilerin tuottama tavukoodi., Jokaisessa käyttöjärjestelmässä on eri JVM, mutta tuotos, jonka ne tuottavat byte-koodin suorittamisen jälkeen, on sama kaikissa käyttöjärjestelmissä. Mikä tarkoittaa, että Windows-käyttöjärjestelmässä syntyvä tavukoodi voidaan ajaa Mac OS-käyttöjärjestelmällä ja päinvastoin. Siksi kutsumme Javaa alustariippumattomaksi kieleksi. Sama asia voidaan nähdä kaavion alla:
Joten tiivistää kaiken: Java Virtual machine (JVM) on virtuaalinen kone, joka toimii itse laitteessa (tietokone) ja suorittaa Java-tavukoodia., JVM ei ymmärrä Java-lähdekoodia, siksi tarvitsemme javac-kääntäjän, joka kokoaa*.java-tiedostoja saada *.luokan tiedostot, jotka sisältävät JVM: n ymmärtämät tavukoodit. JVM tekee java portable (Kirjoita kerran, suorita missä tahansa). Jokaisessa käyttöjärjestelmässä on eri JVM, mutta tuotos, jonka ne tuottavat byte-koodin suorittamisen jälkeen, on sama kaikissa käyttöjärjestelmissä.
JVM Arkkitehtuuri
Voit nähdä, miten JVM toimii:
Class Loader: luokan loader lukee .,luokkatiedosto ja tallenna tavukoodi menetelmäalueella.
Menetelmäalue: JVM: ssä on vain yksi menetelmäalue, joka jaetaan kaikkien luokkien kesken. Tämä sisältää kunkin luokan tason tiedot .luokan tiedosto.
Heap: Heap on osa JVM-muistia, jossa kohteet jaetaan. JVM luo jokaiselle Luokkaobjektin .luokan tiedosto.
Stack: Stack on myös osa JVM-muistia, mutta toisin kuin Heap, sitä käytetään väliaikaisten muuttujien tallentamiseen.
PC Rekisterit: Tämä pitää kirjaa, josta ohje on toteutettu ja joista yksi tulee suorittaa., Koska ohjeet suoritetaan kierteillä, jokaisella langalla on erillinen PC-Rekisteri.
Native Method stack: native method can access the runtime data areas of the virtual machine.
Native Method interface: sen avulla java-koodia voi soittaa tai kutsua natiivisovelluksilla. Natiivi sovellukset ovat ohjelmia, jotka ovat erityisiä laitteiston ja käyttöjärjestelmän järjestelmän.
Roskien keräys: luokka oikeusasteen tuomioistuin on nimenomaisesti luotu java-koodia ja käytön jälkeen se on automaattisesti tuhotaan roskien keräys muistin hallintaa.,
JVM Vs JRE Vs JDK
JRE: JRE on ympäristö, jossa java-virtuaalikone toimii. JRE sisältää Java virtual Machine (JVM), luokkakirjastoja ja muita tiedostoja lukuun ottamatta kehitystyökaluja, kuten kääntäjä ja debuggeri.
mikä tarkoittaa, että voit suorittaa koodin JRE: ssä, mutta et voi kehittää ja kääntää koodia JRE: ssä.
JVM: kuten edellä mainittiin, JVM suorittaa ohjelman käyttämällä JRE: n tarjoamia luokkia, kirjastoja ja tiedostoja.,
JDK: JDK on pääjoukko JRE, se sisältää kaiken, että JRE on yhdessä kehittämisen työkaluja, kuten kääntäjä, debuggeri jne.