Speicherverwaltung

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo ich bin neu hier und hab da mal einige Fragen zur Speicherverwaltung bei Java - währe echt nett von euch wenn ihr mir helfen könntet.

Speicherverwaltung:
•1.In welchem Speicher wird die Refenz auf ein Objekt und das Objekt selbst gespeichert?
•2.Welche Speicher werden von der VM für welche Aufgaben herangezogen?
•3.Wie kann ein Objekt gelöscht und aus dem Speicher entfernt werden (mit praktischem Beispiel)?


Danke schon mal im vorraus.
 

André Uhres

Top Contributor
In Java werden die drei Speicherbereiche Method-Area, Stack und Heap unterschieden.
Wird eine Klasse - also eine .class-Datei - ausgeführt, so befindet sich der Bytecode
der Methoden der geladenen Klassen und der Speicherplatz für die Klassenvariablen
in der Method-Area der virtuellen Maschine.

Objekte - die auch als dynamische Variablen bezeichnet werden - werden auf dem Heap angelegt.
Dynamische Variablen (Objekte) haben dabei die besondere Eigenschaft, dass sie nicht
über einen Namen angesprochen werden können. Eine dynamische Variable kann nur durch
den new-Operator erzeugt werden. Die Referenz, welche der new-Operator zurückgibt, ist die
einzige Möglichkeit, auf die dynamische Variable, die sich im Heap befindet, zuzugreifen.

Die lokalen Variablen einer Methode oder eines Blocks werden dagegen auf dem Stack angelegt.
Eine lokale Variable wird beim Aufruf einer Methode bzw. beim Betreten des Blocks, in dem sie definiert ist,
auf dem Stack da angelegt, wo der Stackpointer gerade hinzeigt. Beim Verlassen des Blocks
wird der Speicherplatz durch Verschieben des Stackpointers wieder freigegeben. Auf dem Stack wird ferner
der Befehlszeiger einer Methode abgelegt, wenn sie durch den Aufruf einer anderen Methode oder
durch den Aufruf von sich selbst unterbrochen wird.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben