创建单例
本文介绍使用Java创建单例的几种方式,后续会增加各种单例的优缺点分析。
一:饿汉式单例(静态成员变量初始化)
1 | public class Singleton{ |
二:饿汉式单例(静态代码块)
1 | public class Singleton{ |
三:懒汉式单例(多线程不可用)
1 | public class Singleton{ |
四:懒汉式单例(同步方法)
1 | public class Singleton{ |
五:懒汉式单例(同步代码块)
1 | public class Singleton{ |
六:懒汉式单例(双重检查判断)
1 | public class Singleton{ |
七:枚举单例
1 | public enum Singleton { |
八:静态内部类单例(IODH)
1 | public class Singleton { |
九:CAS原理实现单例
1 | import java.util.concurrent.CyclicBarrier; |