代码如下:
public class Demo {
Short story = 5;Demo go(Demo demo) { demo = null; return demo; } public static void main(String[] args) { Demo demo1 = new Demo(); Demo demo2 = new Demo(); Demo demo3 = demo1.go(demo2); demo1 = null; //do stuff }
}
当程序运行到//do stuff时,有几个对象符合垃圾收集的条件?
问题补充:
谢谢大家的回答,但是我个人觉得,引用变量demo1所引用的对象是一定符合垃圾收集条件的,引用变量demo2所引用的对象在堆上还是存在的,所以demo2所引用的对象一定不符合垃圾收集的条件。
demo3根本就不用说,它只是一个引用变量(是在栈上分配的),调用方法后返回的是null,所以它不会引用堆上的任何对象。
但是,小弟还有疑问,是不是Short也需要考虑呢,请大牛继续作答,希望能够给出详细的说明,谢谢!
问题补充:
请各位回答的时候,别只说个数字,要说出原因,谢谢!