情形大概如下面描述:
类a:
class a{
private b;
public b getB{
return this.b;
}
static a instance=new a();
}类b:
class b{
private c;
public c getC{
return c;
}
}类c:
class c{
private map m= new HashMap();
}每次访问b都是通过 a.instance.getB();当程序运行到一段时间后有时会出现a.instance.getB();不同的时候获取的实例不是同一个,这种情况出现的机率不是很多,我想问的是a.instance能不能保证在程序jvm内保证只有一个实例,a.instance.getB()是在什么时候产生了新了实例。这段代码的隐患是在那里。谢谢主
类a:
class a{
private b;
public b getB{
return this.b;
}
static a instance=new a();
}类b:
class b{
private c;
public c getC{
return c;
}
}类c:
class c{
private map m= new HashMap();
}每次访问b都是通过 a.instance.getB();当程序运行到一段时间后有时会出现a.instance.getB();不同的时候获取的实例不是同一个,这种情况出现的机率不是很多,我想问的是a.instance能不能保证在程序jvm内保证只有一个实例,a.instance.getB()是在什么时候产生了新了实例。这段代码的隐患是在那里。谢谢主
首先你去看看单例模式,确保class a只会产生一个实例,当然产生它的过程中顺便把这个b也产生了
a.instance能不能保证每次都是同一个对象。