2

行1で作成されたオブジェクトがガベージコレクションになる時期を理解したいのですが...行3にあると想定していますが、回答のオプションとしてそれが表示されません-行4と5は回答の一部です

class MyObject{
    public void myMethod(){
        System.out.println("Mymethod");
    }
}


public class Test {

    public static void main(String[] args) {
        MyObject m = new MyObject(); //line1
        m.myMethod();//line2
        m = null;//line3
        m = new MyObject();//line4
        m.myMethod();//line5
    }

}
4

2 に答える 2

4

null への参照を設定しても、ガベージ コレクターが起動してメモリをクリーンアップするわけではありません。

JVM ガベージ コレクタの起動時に、適格な/マークされたオブジェクトのみがガベージ コレクションされます。ガベージ コレクタは、ガベージ コレクションの対象となるすべてのオブジェクト、つまりどこからも参照されていないオブジェクトをチェックします。

JVM は、マーキングと呼ばれるプロセスを使用して、オブジェクトにガベージ コレクションのマークを付けます。GB が起動すると、マークされたオブジェクトが単純に削除されます。

于 2013-10-06T11:56:32.840 に答える