System.gc() ?

Ich habe gute Erfahrungen mit gc() gemacht. Nachdem ich mehrere Connection-Objekte angelegt hatte ist mir der Speicher übergelaufen, und ich war zu dämlich, die Sache mit close()-Statements in den Griff zu bekommen. Ich habe den Fehler dann durch ein try-catch lokalisiert, und im catch-Block den Garbage-Collector aufgerufen. Vom Programmierstil sicherlich quick&dirty, aber es funktioniert!
 
Hallo
ich hab eine frage:
Muß ich unbedingt den Zeiger auf null setzen, damit der GC das löscht?

Beispiel:
ich gebe
Code:
JLabel label = new JLabel();
//label = null;
label = new JLabel();
ein.
wird das alte Objekt dann trotzdem vom GC gelöscht?
 
Hallo

Objekte werden gelöscht, wenn sie nicht mehr erreichbar sind. Du musst den Zeiger nicht auf "null" setzen. Wenn keine zweite Referenz auf das JLabel verweist, wird es weggeräumt.
 
Also ja, dein Code ist so in Ordnung.

Falls du die Frage deswegen stellst, weil es nicht gelöscht wird:
Es muss nicht sofort passieren.
Der GC kann das machen, wann er will.

PS: Willkommen bei tutorials.de :)
 
Mein Post bezieht sich auf

Code:
FileReader fr = new FileReader(importFile);
String line ="";
char c;
int i=0;
do 
{
    c = (char)fr.read();
    line += c;
    i++;
}
while (c != '\n');
 
Zurück