0

如果我创建了一个类的实例,对象的生命周期是多久,它的生命周期取决于什么?

例如,我有 classA ,我在我的主类中实例化,如下所示:

classA ca = new classA();

该对象的持续时间与运行时一样长吗?

4

3 回答 3

1

好吧,这取决于对象与自身关联的引用有多长时间(有关详细信息,请阅读 ref 的类型)。例如。

classA ca = new classA();
classA ca = new classB();  //first reference assigned to some other object

现在您的第一个对象符合垃圾回收条件,并将在下一个 GC 周期中销毁。

于 2012-06-28T11:53:12.107 回答
0

只要存在对它的实时引用,之后它可能仍然存在于堆中(没有任何引用)但它已准备好被垃圾回收,所以当下次运行 GC 时,它会找到这个实例和 GC所以它死了

例如

{
  classA ca = new classA();
}

classA 的实例在块中创建,并且对它的引用ca肯定是活的,只要控件在该块中,之后它就可以被 GC 收集

于 2012-06-28T11:51:51.777 回答
0

在 Java 中,实例/对象一直存在,直到它有一些可访问的引用。

classA ca = classA();

由于新创建的对象只有一个引用将该实例变量指向 null 使得该对象有资格进行垃圾回收

ca = null;
于 2012-06-28T12:53:18.693 回答