单例就是该类只能返回一个实例。
单例所具备的特点:
1.私有化的构造函数
2.私有的静态的全局变量
3.公有的静态的方法
单例分为懒汉式、饿汉式和双层锁式
饿汉式:
public class SingletonA {
private SingletonA() {};
private static SingletonA single = newSingletonA();
public static SingletonA getInstance() {
return single;
}
}
懒汉式:
public class SingletonB {
private SingletonB() {}
private static SingletonB single=null;
public static SingletonB getInstance() {
if (single == null) {
single = new SingletonB();
}
return single;
}
}
线程安全:
public class SingletonC {
private SingletonC() {}
private static Singleton single ;
public static Singleton3 getInstance() {
if(null== single){
synchronized(single ){
if(null== single){
single = new Singleton3();
}
}
}
returnsingle;