The Java Virtual Machine representerer grunnlag av Java programmeringsspråk. Programvaren virker som en buffer mellom implementering Java kode og den underliggende datasystem. Dette gjør at Java-kode til å kjøre på alle systemer som det er, øker portabilitet . Siden JVM eksisterer som et miljø der du kan kjøre koden , inneholder den en egen minne -konfigurasjon , inkludert grunt minne og heap plass . Haugen plass utgjør en betydelig del av JVM -minne , som inneholder kritiske applikasjoner run- time data . Objekter og Memory
Java representerer et rent objekt -orientert programmeringsspråk, noe som betyr at Java inneholder fordelene med objektorientert programmering, inkludert arv og polymorfisme . Å inkludere disse fordelene , må JVM ha en plass å lagre instansiert stedene. Disse objektene ikke finnes i umiddelbar minne om en et utførende tråd av Java-kode . Snarere erklærer Java-koden "referanser " til objekter som lagrer et sted i dyp, langtidshukommelsen .
Heap og Stack
heap og stable utgjør forskjellen mellom lang - og kortsiktig minne i et utførende program , uavhengig av objekt - orientert språk . Stabelen refererer til de umiddelbare variabler og metode samtaler inni et utførende program . Dette inkluderer skalar variabler, for eksempel heltall og bytes , samt funksjoner som kalles . Haugen , på den annen side representerer plasseringen objekter som blir laget , er lagret i programmet. Objekter tildeles dynamisk inn i haugen og bli der til det ikke lenger kreves av programmet .
JVM Minne
Designere utviklet JVM minne system for å etterligne objektorientert system av andre språk som C + + . Hver utførende tråd av Java-kode i JVM har sin egen stack , som representerer sine lokale skalar variabler og funksjonskall . Videre har JVM sin egen haug plass . Når et program skaper en referanse til et objekt , trekker dette objektet minne fra den kollektive haug plass .
Heap i JVM Memory
heap plass er bare en del av den totale JVM minne, sammen med stakkplass og andre minnetildelinger for viktige funksjoner og JVM -kode. Imidlertid representerer haugen plass en avgjørende del av JVM ved at det er det redskapet som objekter lages . I tillegg har JVM en innebygd søppel innsamling programmet til å slette ubrukte gjenstander fra haugen. I eldre objektorienterte språk , gjenstander måtte slettes manuelt , eller risikerte å bruke opp haugen plass i det som ble kalt en " minnelekkasje . " JVM garbage collector imidlertid overvåker haugen og sletter gamle gjenstander .