如果我创建了一个类的实例,那么Object的生存期是多久以及它的生命周期依赖于什么?
例如,我有classA,我在我的主类中实例化如下:
classA ca = new classA();
此对象是否与运行时一样长?
答案 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;