Speicher freigeben - Garbage Collection

Status
Nicht offen für weitere Antworten.

L-ectron-X

Gesperrter Benutzer
Wenn ich eine erzeugte und benutze Instanz einer Klasse nicht mehr benötige, kann ich auch Speicher freigeben, in dem ich sie auf null setze? Oder geht das nur in dem ich den Garbage Collector anfordere?
 

K-Man

Bekanntes Mitglied
Wenn du ein Objekt auf null setzt, dann gibt es sie ja immer noch. Sie werden vom GC aufgenommen, wenn sie nicht mehr benötigt werden. Man kann sie aber auch explizit dem GC übergeben. WEiß aber gerade nicht, wie.... :bahnhof:
 

L-ectron-X

Gesperrter Benutzer
Der Befehl dazu lautet: System.gc();

Der Grund warum ich frage ist folgender:
Wenn ein Programm längere Zeit läuft und Instanzen von verschiedenen Klassen erzeugt, sammeln sich ja einige Objekte im Heap-Speicher an. Nach Deiner Aussage wäre der Speicher irgendwann erschöpft. Ich möchte aber dafür sorgen, dass das nicht passiert. Daher wollte ich eben wissen, wie man anstellen kann, dass alte nicht mehr benötigte Objekte aus dem Heap entfernt werden.
Im Prinzip, so denke ich mir, sammelt der Garbage Collector nur Objekte ein, die null sind, woher soll er sonst wissen, welche er sammeln soll?
Andererseits, ist es doch so, dass ich Instanzvaribalen nicht sofort initialisieren muss (demzufolge bleiben sie null, bis sie initialisiert werden). Woher weiß der Garbage Collector dann, welche Objekte nicht mehr beötigt werden?
 

K-Man

Bekanntes Mitglied
Der GC löscht Objekte nicht, wenn sie null sind, sondern wenn keiner mehr auf sie zugreifen kann. DH, wenn es keine Referenz mehr auf das Obekt gibt, zB wenn es in einem Block erzeugt wird und der Block verlassen wird. Du brauchst dich in der Regel nicht darum kümmern, da der GC ziemlich gut arbeitet:
BS:
Code:
{
    Test test = new Test(); //initialisieren eines Obekts.
    test.doSomething();
}
//jetzt kann keiner mehr auf das Objekt test zugreifen und test wird vom GC aus dem Speicher gelöscht...
 

L-ectron-X

Gesperrter Benutzer
@DP: Danke für die Links. Werde das mal durch arbeiten.
Ich bin gerade dabei C++ als zweite Sprache zu lernen, da ist das mit der Speicherverwaltung etwas anders.
Vielleicht bin ich davon etwas irritiert...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Heap-Speicher wieder freigeben Java Basics - Anfänger-Themen 10
M Hilfe: Speicher freigeben? Java Basics - Anfänger-Themen 4
S Speicher freigeben? Java Basics - Anfänger-Themen 5
V Ist Off-Heap-Speicher dasselbe wie Stack-Speicher? Java Basics - Anfänger-Themen 2
B Objekte, bspw. konkret Arraylists,manuell aus Speicher löschen? Java Basics - Anfänger-Themen 70
KogoroMori21 Stack und Heap Speicher Java Basics - Anfänger-Themen 1
B Wie speicher ich die Outputs einer Methode in ein Array ein? Java Basics - Anfänger-Themen 1
L Frage zum Speicher bei Arrays Java Basics - Anfänger-Themen 7
L Herunterladbares Java Programm in bestimmten Ordner speicher Java Basics - Anfänger-Themen 3
A Heap Space Error bei rekursiver Suche in Dateien trotz nur einer Zeile im Speicher Java Basics - Anfänger-Themen 26
F BufferedImage Speicher Nutzung Java Basics - Anfänger-Themen 2
TheSorm Problem mit Speicher Klasse Java Basics - Anfänger-Themen 3
S Wo speicher ich bilder und sounds ab? Java Basics - Anfänger-Themen 4
TheSorm Kleine Speicher Klasse Java Basics - Anfänger-Themen 24
H Methoden "Leeren" Speicher auf der Festplatte überschreiben Java Basics - Anfänger-Themen 8
C Variablen Speicher von Variablen erhöhen Java Basics - Anfänger-Themen 5
I Werte im Speicher auswerten ohne Umweg über eine Datei Java Basics - Anfänger-Themen 16
H Input/Output ImageIO.load frisst meinen ganzen Speicher weg! Java Basics - Anfänger-Themen 4
R Online-Speicher Java Basics - Anfänger-Themen 7
M Variablen speicher Java Basics - Anfänger-Themen 8
J FileOutputStream aktuelle Speicher Pfad ausgeben Java Basics - Anfänger-Themen 13
L Wieviel Speicher braucht ein Pixel? Java Basics - Anfänger-Themen 14
P Belegt "null" Speicher? Java Basics - Anfänger-Themen 25
T Erste Schritte Speicher läuft voll, Diashow, Images Java Basics - Anfänger-Themen 7
C Soundwiedergabe in einem Thread - Speicher besser bereinigen Java Basics - Anfänger-Themen 3
H warum speicher und läd mien editor nicht? Java Basics - Anfänger-Themen 24
T MysqlConnect und Speicher Java Basics - Anfänger-Themen 8
nabla Speicher voll, mit dem GC geht's daneben? Java Basics - Anfänger-Themen 7
hdi Programmier-Stil : Speicher vs. Quellcode Java Basics - Anfänger-Themen 67
G Button soll Speicher Dialog aufrufen Java Basics - Anfänger-Themen 10
N Probleme mit Input/OutputStreams, Daten im Speicher verwalte Java Basics - Anfänger-Themen 2
D nicht genug speicher - profiling trotz error Java Basics - Anfänger-Themen 5
A Problem mit nicht ausreichendem Speicher Java Basics - Anfänger-Themen 3
K speicher(String a, int b) Java Basics - Anfänger-Themen 14
N Zugriff auf Virtuelles Speicher Java Basics - Anfänger-Themen 18
J Belegter Speicher eines Ordners Java Basics - Anfänger-Themen 2
C args[] als statische Variablen speicher oder wie? Java Basics - Anfänger-Themen 12
S Ringbuffer-Speicher mit einem Textfile Java Basics - Anfänger-Themen 2
A eingabe von jTextField lesen und speicher Java Basics - Anfänger-Themen 5
D Werte in Array speicher Java Basics - Anfänger-Themen 8
G Speicher als .txt -gibt ein Problem! Java Basics - Anfänger-Themen 6
A Speicher von VM ändern ohne Parameter Java Basics - Anfänger-Themen 3
T Größe eines Objektes im Speicher Java Basics - Anfänger-Themen 4
G Wieviel Speicher verbraucht ein Array? Java Basics - Anfänger-Themen 7
D Mit Java auf Speicher zugreifen Java Basics - Anfänger-Themen 3
T Arbeitsspeicher wieder freigeben Java Basics - Anfänger-Themen 21
G Objekt freigeben Java Basics - Anfänger-Themen 2
J Bestimmte Stelle im Array die belegt ist wieder freigeben. Java Basics - Anfänger-Themen 3
Encera Garbage Collection Java Basics - Anfänger-Themen 9
T Variable in Schleife deklarieren, Speicherplatz, Garbage Collector Java Basics - Anfänger-Themen 10
H Frage zum Garbage Collector Java Basics - Anfänger-Themen 2
K Frage zum Garbage Collector Java Basics - Anfänger-Themen 5
T garbage collector Java Basics - Anfänger-Themen 2
S Vernichtung von objekten mit dem garbage collector Java Basics - Anfänger-Themen 14
I Problem mit garbage collector/Speicherfreigabe Java Basics - Anfänger-Themen 8
J Warum werden Threads nicht vom Garbage-Collector gelöscht? Java Basics - Anfänger-Themen 14
T Memory Leak und der Garbage Collector Java Basics - Anfänger-Themen 21
P Timer-Objekt und Garbage Collector Java Basics - Anfänger-Themen 6
P Garbage Collector beschleunigen Java Basics - Anfänger-Themen 25
U Garbage collector Java Basics - Anfänger-Themen 8
C Garbage Collector Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben