如果我创建了一个类的实例,对象的生命周期是多久,它的生命周期取决于什么?
例如,我有 classA ,我在我的主类中实例化,如下所示:
classA ca = new classA();
该对象的持续时间与运行时一样长吗?
如果我创建了一个类的实例,对象的生命周期是多久,它的生命周期取决于什么?
例如,我有 classA ,我在我的主类中实例化,如下所示:
classA ca = new classA();
该对象的持续时间与运行时一样长吗?
好吧,这取决于对象与自身关联的引用有多长时间(有关详细信息,请阅读 ref 的类型)。例如。
classA ca = new classA();
classA ca = new classB(); //first reference assigned to some other object
现在您的第一个对象符合垃圾回收条件,并将在下一个 GC 周期中销毁。
只要存在对它的实时引用,之后它可能仍然存在于堆中(没有任何引用)但它已准备好被垃圾回收,所以当下次运行 GC 时,它会找到这个实例和 GC所以它死了
例如
{
classA ca = new classA();
}
classA 的实例在块中创建,并且对它的引用ca
肯定是活的,只要控件在该块中,之后它就可以被 GC 收集
在 Java 中,实例/对象一直存在,直到它有一些可访问的引用。
classA ca = classA();
由于新创建的对象只有一个引用将该实例变量指向 null 使得该对象有资格进行垃圾回收
ca = null;