抱歉,如果有人问过这个问题。
我有以下情况:
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
吗? 最佳答案
不会。首先,可能有人坚持引用distressIns
(毕竟getIns()
方法是公开的,因此可能会有另一个引用)。
其次,变量不会仅仅因为它们被垃圾收集而“变为空”。再次取决于是否存在另一个引用,对象是否可以被垃圾回收。