饿汉式:
class Single
{
private Single(){}
Private static Single s = new Single();
public static Single getInstance()
{
return s;
}
}
懒汉式:对象是方法被调用时,才初始化,也叫做对象的延时加载。
class Single
{
private Single(){}
Private static Single s = null;
public static Single getInstance()
{
if(s==null)
s=new Single();
return s;
}
}
开发一般用饿汉式,而懒汉式存在着一些小问题。如果多个人同时调用这个方法就会出现问题。
解决方案:synchronized(同步)
public static Single getInstance()
{
if(s==null)
{
synchronized (Single.class)
{
if(s==null)
s=new Single();
}
return s;
}
}