例如,我有一个像这样的类:
public class StaticObjectReference{
private static StaticObjectReference instance;
private Vector queue;
public static StaticObjectReference getInstance(){
if(instance == null){
instance = new StaticObjectReference();
}
return instance;
}
public Vector getQueue(){
queue = new Vector();
return queue;
}
}
接下来的两个类称为
StaticObjectReference
类。public class CallerOne{
Vector queue1;
public void callObjectInstance1(){
queue1 = StaticObjectReference.getInstance().getQueue();
}
}
class CallerTwo{
Vector queue2;
public void callObjectInstance2(){
queue2 = StaticObjectReference.getInstance().getQueue();
}
}
类CallerOne中的
queue1
是否与类CallerTwo中的相同实例queue2
? 最佳答案
您正在使用类StaticObjectReference
的相同实例进入队列,因此,是的,它们是同一队列。
请注意,这与instance
是静态的事实没有直接关系。该类正在实现Singleton pattern,这还需要做很多工作,因此该类只有一个实例。
正如Brian指出的那样,此实现不是线程安全的。检查Wikipedia链接以获取线程安全方法。