1、懒汉式:
public class Singleton01{
private static final INSTANCE = new Singleton01();
private Singleton01(){};
public static Singleton getInstance(){
return INSTANCE;
}
}
2、线程安全的饿汉式
public class Singleton02{
private static volatile instance;
private Singleton02(){};
public static Singleton02 getInstance(){
if(insatnce == null){
synchronized(this){
if(instance == null)
instance = new Singleton02();
}
}
return instance;
}
}
3、枚举类建立单例模式,可以反序列化
public enum Singleton03{
INSTANCE;
}
4、静态内部类的方式,属于懒汉式的一种也是线程安全的
public class Singleton04{
private Singleton04(){};
private static class singleton04Holder{
private static final INSTANCE = new Singleton04();
public static Singleton04 getInstance(){
return INSTANCE;
}
}
}