Java representerar ett rent objektorienterat programmeringsspråk, vilket innebär att Java innehåller fördelarna med objektorienterad programmering, inklusive arv och polymorfism. För att inkludera dessa förmåner måste JVM ha ett utrymme att lagra instansieras objekt. Dessa objekt finns inte i den omedelbara minnet av en en verkställande tråd av Java-kod. Snarare säger Java-kod "referenser" till objekt som lagrar en plats i djup, långtidsminnet.
Och stacken
högen och stack representerar skillnaden mellan lång och kort sikt minne i ett exekverande program, oavsett objektorienterat språk. Stapeln avser den omedelbara variabler och metodanrop inuti ett exekverande program. Detta inkluderar skalära variabler, t.ex. heltal och bytes, samt kallas funktioner. Högen, å andra sidan, representerar platsen där skapade objekt lagras av programmet. Objekt allokeras dynamiskt i högen och stanna där tills det inte längre krävs av programmet.
JVM Memory
Designers utvecklat JVM minne för att efterlikna objektorienterade system för andra språk som C + +. Varje verkställande tråd av Java-kod i JVM har sin egen stack, som representerar de lokala skalära variabler och funktionsanrop. Dessutom har JVM egen heap utrymme. När ett program skapar en referens till ett objekt, drar objektet minne från den kollektiva högen rymden.
Heap i JVM Memory
heap utrymmet är bara en del av den totala JVM minnet tillsammans med stacken och andra anslag minne för viktiga funktioner och JVM kod. Emellertid representerar heap utrymme en viktig del av JVM genom att det är det fordon med vilket objekt skapas. Dessutom har JVM ett inbyggt sopor samla program för att ta bort oanvända objekt från högen. I äldre objektorienterade språk, var föremål tas bort manuellt, eller riskerat att använda upp högen utrymme i vad som kallades en "minnesläcka." JVM: s garbage collector, men övervakar högen och raderar gamla föremål.
Addera ditt
Upphovsrätt © Liv och hälsa