单例模式(Singleton)

public class Singleton {
/* 持有私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载 */
private static Singleton instance=null;


/**
* 构造方法私有化 防止实例化
*/
private Singleton(){


}
/**
* 静态工程方法,创建实例
* @return
*/
public static Singleton getInstance(){
if(instance==null){
instance=new Singleton();
}

return instance;
}

}

这样是有线程安全性问题

public class Singleton {
/* 持有私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载 */
private static Singleton instance=null;


/**
* 构造方法私有化 防止实例化
*/
private Singleton(){


}
/**
* 静态工程方法,创建实例
* @return
*/
public static Singleton getInstance(){
if (instance == null) {
synchronized (instance) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}

}

改进

posted @ 2016-04-05 22:02  随风而逝,只是飘零  阅读(183)  评论(0)    收藏  举报