Hallo zusammen,
ich wundere mich gerade, warum folgendes Beispiel nicht funktioniert:
Soweit ich es verstanden habe, müsste der Garbage Collector doch nach einiger Zeit finalize() von dem anfänglich b zugewiesenen Container aufrufen. Oder was mache ich falsch?
Vielen Dank und viele Grüße,
Rafael
ich wundere mich gerade, warum folgendes Beispiel nicht funktioniert:
Java:
public class FinalizeTest {
MyContainer a;
FinalizeTest(MyContainer a) {
this.a = a;
}
public static void main(String[] args) throws Exception {
System.out.println("start");
MyContainer a = new MyContainer();
FinalizeTest b = new FinalizeTest(a);
while(true) {
Thread.sleep(1000);
System.out.println("Status: "+ a.val + " (b=" + b + ")");
b = null;
}
}
protected void finalize() throws Throwable {
a.val = "finalized";
super.finalize();
}
}
class MyContainer {
public String val = "not finalized";
}
Soweit ich es verstanden habe, müsste der Garbage Collector doch nach einiger Zeit finalize() von dem anfänglich b zugewiesenen Container aufrufen. Oder was mache ich falsch?
Vielen Dank und viele Grüße,
Rafael