单例
2023-07-07 12:31:03 10 举报
单例
作者其他创作
大纲/内容
public class Singleton{ private static Singleton instance =null; private Singleton(){ } public static Singleton geteInstance(){ if(instance == null){ instance =new Singleton(); } return instance; }}
LazySingleton(懒汉式单例)
-instance:LazySingleton =null
-LazySingleton()+getlnstance():LazySinglton
提供了对唯一实例的受控访问可以节约系统资源,提高系统的性能
Singleton(饿汉式单例)
-instance:Singleton
-Singleton()+getlnstance():Singleton
扩展困难单例类的职责过重
public class LazySingleton{ private static LazySingleton instance =null; private LazySingleton(){ } synchronized public static LazySingleton geteInstance(){ if(instance == null){ instance =new LazySingleton(); } return instance; }}
public class LazySingleton{ private volatile static LazySingleton instance =null; private LazySingleton(){ } public static LazySingletongeteInstance(){ if(instance == null){ synchronized(LazySingleton.class){ if(instance ==null){ instance =new LazuSingleton(); } } } return instance; }}
系统只需要一个实例对象
饿汉式单例类:无须考虑多个线程同时访问的问题;调用速度和反应时间优于懒汉式单例;资源利用效率不及懒汉式单例;系统加载时间可能会比较长懒汉式单例类:实现了延迟加载;必须处理好多个线程同时访问的问题;需通过双重检查锁定等机制进行控制,将导致系统性能受到一定影响
0 条评论
下一页