Pila e mucchio sono le memorie assegnate dal sistema operativo alla JVM che scorre nel sistema . Stack è un luogo di memoria in cui sono memorizzati i metodi e le variabili locali. (riferimenti variabili primitivo o oggetto riferimenti vengono anche memorizzati nello stack). Heap è un luogo di memoria in cui sono memorizzati gli oggetti e la relativa variabile di istanza.
Quindi, per riassumere:
- oggetti classe, compreso il codice metodo e campi statici: mucchio.
- Oggetti, inclusi i campi di istanza: heap.
- variabili locali e le chiamate a metodi: pila
Inoltre, dobbiamo variabile di istanza diverso per più thread?
Ogni thread avrà un contatore di programma (PC) e uno stack java. Il PC utilizzerà lo stack java per memorizzare i valori intermedi, il collegamento dinamico, i valori di ritorno per i metodi e le eccezioni di invio. Questo è usato al posto dei registri.
Anche per ulteriori informazioni su thread, è consigliabile leggere questo argomento Where is Thread Object created? Stack or Heap?.
Se stoccato in zona metodo com'è esempio variabile diversa da immagazzinamento variabile statica?
Come potete vedere sopra campi statici sono memorizzati in mucchio. D'altra parte, le variabili locali vengono memorizzate nello stack.
// EDIT
Secondo i commenti di Bruno Reis e Peter Lawrey, si dovrebbe anche leggere su analisi fuga
- Wikipedia
- Virtual Machine Performance Enhancements,Escape Analysis
fonte
2014-05-08 19:23:25
variabili di istanza sono uno per ogni oggetto. Le variabili statiche sono una per classe. Thread (sorta di) condividono la stessa memoria –