面试题:线程安全的单例模式
只需要同步一次,但是这种方法在JDK1.2的版本中会出现错误,会被当作垃圾给回收掉
public class Singleton{
private static Singleton instance=null;
private Singleton(){}
public static Singleton getInstance(){
if(instance==null){
synchronized(Singleton.class){
instance=new Singleton();
}
}
return instance;
}
}
最早从google的一个叫lee的人那里学来的,现在基本都这样写
public class Singleton{
static class SingletonHolder{
static Singleton instance=new Singleton();
}
public static Singleton getInstance(){
return Singleton.instance();
}
}
我是这样写的 嘎嘎 华育国际教的
public class Singleton {
private Singleton() {}
private static Singleton instance = null;
public static Singleton getInstance() {
if(instance == null) {
instance = new Singleton();
}
return instance;
}
}
评论