如果之前有人问我,我道歉。
我有以下情况:
public class Distress{
private static Distress distressIns;
private MyFirstClass aClass;
private MySecondClass bClass;
private Distress(){
aClass = new MyFirstClass();
bClass = new MySecondClass();
}
///update: this is a singleton class
public static getIns(){
if (distressIns == null){
distressIns = new Distress();
}
return distressIns;
}
public static destroyIns(){
distressIns = null;
}
}
在上述情况下,如果有人拨打destroyIns()
,aClass
和bClass
也会成为null
吗?
答案 0 :(得分:4)
没有。首先,有人可能会继续引用distressIns
(您的getIns()
方法毕竟是公开的,因此可能会有另一个引用)。
其次,变量不会变为空白"只是因为他们是垃圾收集。这些对象可能会也可能不会被垃圾收集,这取决于是否存在其他引用。