一、单例模式
单例模式主要分为饿汉式、懒汉式(非线程安全、线程安全、双重检查)、静态内部类、枚举。
1.饿汉式
public class SingleDemo{
private SingleDemo(){} // 重写默认构造器,防止外部实例化
private static SingleDemo instance = new SingleDemo();
public static SingleDemo getInstance(){
return instance;
}
}
2.懒汉式(双重检查)
public class SingleDemo{
private SingleDemo(){}
private static volatile DingleDemo instance;
public static SingleDemo getInstance(){
if(instance == null){
synchronized(SingleDemo.class){
if(instance == null){
instance = new SingleDemo();
}
}
return instance;
}
}
3.静态内部类式
public class SingleDemo{
private SingleDemo(){}
public static getInstance(){
return SingleDemoHolder.INSTANCE;
}
private static class SingleDemoHolder{
public static final SingleDemo INSTANCE= new SingleDemo();
}
}