单例模式
懒加载,线程不安全
public class Singleton {private static Singleton instance;private Singleton(){}public static Singleton getInstance(){if(instance == null){instance = new Singleton();}return instance;}}
懒加载,线程安全,线程方法排序
public class Singleton {private static Singleton instance;private Singleton(){}public static synchronized Singleton getInstance(){if(instance == null){instance = new Singleton();}return instance;}}
synchronized表示多线程排序执行方法。
懒加载,线程安全,线程属性传递
public class Singleton {private volatile static Singleton instance;private Singleton(){}public static Singleton getInstance(){if(instance == null){instance = new Singleton();}return instance;}}
volatile表示变量修改最后的值。
类加载,线程安全
public class Singleton {private static Singleton instance = new Singleton();private Singleton(){}public static Singleton getInstance(){return instance;}}
静态内部类加载,线程安全
public class Singleton {private static class SingletonHolder{private static final Singleton INSTANCE = new Singleton();}private Singleton(){}public static Singleton getInstance(){return SingletonHolder.INSTANCE;}}
枚举
public enum Singleton {INSTANCE;private Single(){}public void whateverMethod(){}}

浙公网安备 33010602011771号