Wo sind Instanz-Variablen ein Objekt in der JVM?
Ist eine Instanz-variable eines Objekts in Java auf dem stack gespeichert werden oder die Methode Bereich der JVM?
Außerdem haben wir verschiedene Instanz-variable für mehrere threads?
Wenn es gespeichert ist, in der Methode area wie ist das Instanz-variable unterscheidet sich von der statischen variable speichern?
Instanz-Variablen werden mit einem pro Objekt. Statische Variablen sind eine pro-Klasse. Threads (Art von) teilen sich den gleichen Speicher
InformationsquelleAutor saurabh goyal | 2014-05-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stack und heap sind die Erinnerungen, bereitgestellt von der OS an die JVM läuft im
system.Stack ist ein Speicher Ort, wo die Methoden und die lokalen Variablen gespeichert werden.
(variable referenziert entweder primitive oder Objekt Referenzen sind ebenfalls auf dem stack gespeichert). Heap ist ein Speicher Ort, wo die Objekte und Ihre Instanz-Variablen gespeichert werden.
Also um es zusammenzufassen:
Jeder thread eine Programm counter (PC) und einen java-stack. PC wird mit dem java-stack zum speichern der Zwischenwerte, die dynamische Verknüpfung, die Rückgabewerte für Methoden und dispatch-Ausnahmen. Dies wird verwendet, der Ort der Register.
Auch mehr über die Gewinde, die Sie wirklich Lesen sollten dieses Thema Wo ist Thread-Objekt erstellt? Stack oder Heap?.
Wie Sie oben sehen können statische Felder sind im heap gespeichert. Auf der anderen Seite, lokale Variablen gespeichert sind, in den stack.
//EDIT
Laut den Kommentaren von Bruno Reis und Peter Lawrey, sollten Sie auch Lesen Sie über Escape-Analyse
Ich sage nicht, dass dies unbedingt korrigieren. Dies ist nur eine sehr einfache Sicht, wie werden Variablen gespeichert im Java.
stimmt, aber escape-Analyse führt selten zur Vermeidung der Verwendung des Heaps.
Ihre Annahme ist falsch: ich habe nicht nach unten Abstimmung Ihre Antwort. Die Antwort ist in Ordnung, nicht falsch, gut genug für die meisten Entwickler einfach nicht 100% streng richtige. (Ich wusste nicht wählen-für mich ist dies völlig neutral!) (und sieht aus wie dein Kommentar verschwunden ist!)
Ich diesem Fall bin ich wirklich, sorry 🙂 hab ich auch bearbeitet, die Antwort mit den links zu den escape-Analyse und so weiter ...
InformationsquelleAutor Matej Špilár
Um genau zu sein,
und das Objekt auf dem heap ). Nur method invocation und Teilergebnisse
gespeichert wird im stack nicht die Methode selbst.
Methode Bereich.
Referenz: Head First Java
InformationsquelleAutor Jayanth