1.饿汉模式
publicclass HungrySingleton { //立即加载模式privatestatic HungrySingleton hungrySingleton = newHungrySingleton(); privateHungrySingleton(){} publicstatic HungrySingleton getInstance(){ return hungrySingleton; } }
2.懒汉模式
public class LazySingleton { private static LazySingleton lazySingleton; private LazySingleton() {} public static LazySingleton getInstance(){ if(lazySingleton!=null){ }else{ lazySingleton = new LazySingleton(); } return lazySingleton; } }
3. 双重校验锁
public class LazySingleton {
private static LazySingleton lazySingleton;
private LazySingleton() {}
public static LazySingleton getInstance(){
if(lazySingleton!=null){
}else{
synchronized (LazySingleton.class){
if(lazySingleton==null){
lazySingleton = new LazySingleton();
}
}
}
return lazySingleton;
}
}