类生命时间的Java实例

时间:2012-06-28 11:50:11

标签: java

如果我创建了一个类的实例,那么Object的生存期是多久以及它的生命周期依赖于什么?

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

classA ca = new classA();

此对象是否与运行时一样长?

3 个答案:

答案 0 :(得分:1)

嗯,这取决于对象有多长时间与自身相关联(请参阅详细信息的ref类型)。对于前。

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

现在你的第一个对象有资格进行垃圾收集,并将在nextGC循环中销毁。

答案 1 :(得分:0)

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

例如

{
  classA ca = new classA();
}

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

答案 2 :(得分:0)

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

classA ca = classA();

由于新创建的对象只有一个引用将此实例变量指向null,因此该对象可用于垃圾回收

ca = null;