gpt4 book ai didi

java - 如果对象引用是静态的,是否意味着该对象的属性也是静态的?

转载 作者:行者123 更新时间:2023-11-29 03:38:29 29 4
gpt4 key购买 nike

例如我有这样一个类:

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 指出的那样,此实现不是线程安全的。检查线程安全方法的维基百科链接。

关于java - 如果对象引用是静态的,是否意味着该对象的属性也是静态的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14249995/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com