脚本宝典收集整理的这篇文章主要介绍了整理下java六种单例模式,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
可能总结的会有问题,我会一点点完善的...
@H_406_3@结论:建议使用第 4 种饿汉方式。如果明确要实现懒加载效果时,使用第 5 种静态内部类方式。如果涉及到反序列化创建对象时,可以使用第 6 种枚举方式。 1 懒汉式,线程不安全
public class Singleton { PRivate static Singleton instance=null; public static Singleton getInstance(){ if(instance==null){ instance=new Singleton(); } return instance; } private Singleton(){} }
2 懒汉式,线程安全
public class Singleton { private static Singleton instance=null; public static synchronized Singleton getInstance(){ if(instance==null){ instance=new Singleton(); } return instance; } private Singleton(){} }
3 双重检查锁,懒汉式,线程安全
public class Singleton { private volatile static Singleton instance=null; public static Singleton getInstance(){ if(instance==null){ synchronized(Singleton.class){ if(instance==null){ instance=new Singleton(); } } } return instance; } private Singleton(){} }
4 饿汉式,线程安全
public class Singleton { private static Singleton instance=new Singleton(); public static Singleton getInstance(){ return instance; } private Singleton(){} }
5 静态内部类,懒汉式,线程安全
public class Singleton { private static class SingletonHolder{ private final static Singleton instance=new Singleton(); } public static Singleton getInstance(){ return SingletonHolder.instance; } private Singleton(){} }
6 枚举类,懒汉式,线程安全
public enum SingletonEnum{ INSTANCE; }
以上是脚本宝典为你收集整理的整理下java六种单例模式全部内容,希望文章能够帮你解决整理下java六种单例模式所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。