实例变量堆还是栈? (有具体例子)

Instance variable heap or stack ? ( with specific example)

使用以下代码:

public class Main {
    public static void main(String args[]) {
        A objectA = new A();
        objectA.deleteB();
    }
}

public class A {

    private B objectB;

    public A() {
        this.objectB = new B();
    }

    public void deleteB() {
       this.objectB = null;
    }
}

public class B {
   public B() {}
}

堆栈中的第一帧用于 main()

堆栈中的局部变量 objectA 包含对堆中真实对象 A 的引用,而在堆中的对象 A 中,我们有一个引用对象 B,指向堆中的真实对象 B。

问题是针对栈中的第二帧deleteB()

在我做的方法中:this.objectB = null;

在记忆中是什么意思?

表示objectAobjectB字段不再引用任何东西。如果它之前引用的对象(在堆上)没有在其他任何地方引用(并且它不在您发布的代码中),它将被垃圾收集。这意味着它在堆上占用的内存将被释放,并可用于其他对象。