单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。
四点要求:唯一实例,多线程并发访问,效率性能,懒加载(Lazy Load,在需要的时候才被构造) 1、懒汉模式,线程不安全
public class SingletonKerriganA { /** * 单例对象实例 */ PRivate static SingletonKerriganA instance = null; public static SingletonKerriganA getInstance() { if (instance == null) { instance = new SingletonKerriganA(); } return instance; }}2、懒汉模式,线程安全,但是效率低
public class SingletonKerriganB { /** * 单例对象实例 */ private static SingletonKerriganB instance = null; public synchronized static SingletonKerriganB getInstance() { if (instance == null) { instance = new SingletonKerriganB(); } return instance; }}3、饿汉模式
public class SingletonKerriganE { /** * 单例对象实例 */ private static SingletonKerriganE instance = new SingletonKerriganE(); public static SingletonKerriganE getInstance() { return instance; }}4、静态内部类。懒汉模式,线程安全,性能好,应用多。
public class SingletonKerriganF { private static class SingletonHolder { /** * 单例对象实例 */ static final SingletonKerriganF INSTANCE = new SingletonKerriganF(); } public static SingletonKerriganF getInstance() { return SingletonHolder.INSTANCE; }}实际开发中,我们应该记住:没有最好的单例模式,只有最合适的单例模式。
新闻热点
疑难解答