首页 > 代码库 > 关于Java中的单例模式
关于Java中的单例模式
一.特点:
①单例类只能有一个实例
②单例类必须自己自己创建自己的唯一实例
③单例类必须给所有其他对象提供这一实例
二.实现方法:
①饿汉式
public class Singleton1{ private Singleton1(); private static Singleton1 single=new Singleton1(); public static final Singleton1 getInstance(){ return single; } }
②懒汉式1(线程不安全)
public class Singleton1{ private Singleton1(); private static Singleton1 single=null; public static Singleton1 getInstance(){ if(single==null){ single=new Singleton1(); } return single; } }
这种方法因为在getInstance方法中没有添加线程锁,所有当有多个线程同时访问该方法时就会产生多个Singleton1实例。
③懒汉式2(线程安全,但是效率不高,即加入线程锁[线程锁的地方会浪费时间,若可以减少判断线程锁即可节约时间])
public class Singleton1{ private Singleton1(); private static Singleton1 single=null; public static synchronized Singleton1 getInstance(){ if(single==null){ single=new Singleton1(); } return single; } }
④懒汉式3(线程安全,效率也高,即双重判断)
public class Singleton1{ private Singleton1(); private static Singleton1 single=null; public static Singleton1 getInstance(){ if(single==null){ synchronized(Singleton1.class){ if(single==null){ s=new Singleton1(); } } } return single; } }
关于Java中的单例模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。