Modelul de memorie Java

Java de memorie model. Care este memoria Heap și stiva în Java?

Java de memorie model este utilizat în memoria JVM și împarte între stive de fire și grămezi. Diagrama ilustrează un model de memorie de Java:

Modelul de memorie Java

Fiecare fir rulează pe mașina virtuală Java și are propria stiva fir. fluxul de stivă conține informații despre modul în care fluxul cauzat metodele. precum și crearea variabilelor primitive (int, double).
În cazul în care firele de execuție folosesc același cod, este încă una dintre ele creează propriile sale copii ale primitivilor. Toate variabilele locale tipurile primitive (Boolean, Byte, CHAR, INT) complet stocate în stiva de fire și, astfel, nu este vizibil pentru alte fire.
Heap (Heap) - contine toate obiectele create în aplicații Java, indiferent de care fir a creat obiectul. Aceasta include versiunile obiect al tipurilor primitive (Byte, Integer, Long). Nu contează dacă obiectul a fost creat și atribuit unei variabile locale, sau create ca variabilă membru al unui alt obiect, obiectul este încă stocat pe movila.
O diagramă care ilustrează stiva de apel și variabilele locale stocate în stive și fluxul de obiecte stocate în grămadă:

Modelul de memorie Java

O variabilă locală poate fi un tip simplu, în acest caz, acesta este complet stocat în fluxul de stivă.

Modelul de memorie Java

Cele două fluxuri au un set de variabile locale. O variabilă locală (Variable locală 2) indică faptul că obiectul partajat în grămadă (Object 3). Cele două fluxuri au diferite se referă la același obiect. referință lor variabile locale și, astfel, fiecare fir are o referință la un obiect.
Notă modul în care obiectul partajat (Object 3) are o trimitere la Object 2 și 4 Object ca variabile (indicate prin săgeți 3 din 2 Object și obiect la obiect 4).
Prin aceste link-uri variabile Object 3 din ambele fire pot accesa obiectul 2 și 4 Object.

Care este memoria Heap și stiva în Java?

Memorie Java Heap

Java Heap (heap de) Java Runtime este utilizat pentru a aloca memorie pentru obiecte și JREklassy. Crearea unui nou obiect, de asemenea, are loc într-o grămadă. Se folosește un colector de gunoi: eliberează memoria ștergând obiecte care nu au nici un link-uri. Orice obiect creat pe heap, are acoperire globală și se poate referi la orice parte a cererii.
Stiva de memorie în Java

articole similare