java设计模式_单例模式_学习笔记
来源:互联网 发布:淘宝联盟验证失败 编辑:程序博客网 时间:2024/06/05 02:03
1、为什么使用单例设计模式?
为了避免多个实例造成资源浪费,与避免多实例多次调用出现的错误
2、什么是单例设计模式?
单例模式能够保证整个应用中有且只有一个实例
3、怎么使用单例模式?
(1)私有化该类的构造函数
(2)在本类中new一个对象
(3)定义一个公有的方法,返回由该类创建的对象
4、单例模式的写法
4.1 饿汉式[可用]
public class Singleton { private static Singleton instance=new Singleton(); private Singleton(){} public static Singleton getInstance(){ return instance; }}访问方式:
Singleton instance = Singleton.getInstance();
4.2 懒汉式[线程不安全,不可用]
public class Singleton { private Singleton() {}; private static Singleton instance=null; public static Singleton getInstance(){ if(instance==null){ instance=new Singleton(); } return instance; }}当多个线程执行 if(instance==null) 时而还没执行到 instance=new Singleton() 都会进入, 然后都将执行 instance=new Singleton()导致出现多个实例, 故存在线程不安全问题
4.6 懒汉式双重校验锁[推荐用]
public class Singleton { private Singleton() {} private static Singleton instance = null; public static Singleton getInstance() { if (instance == null) { synchronized (Singleton.class) { if (instance == null) { instance = new Singleton(); } } } return instance; }}写两次if(instance==null), 第一次避免如果已有实例还要执行同步操作导致的效率问题, 第二次保证了即使多个线程通过if(instance==null)后能在线程锁下保证只执行一次instance=new Singleton()
阅读全文
0 0
- java设计模式_单例模式_学习笔记
- 【JavaEE学习笔记】设计模式_单例模式
- Java设计模式_单例模式
- java设计模式_单例模式
- java设计模式_单例模式
- java设计模式_单例模式
- Java-设计模式_单例模式
- Java 设计模式_单例模式
- Java设计模式_(创建型)_单例模式
- java基础_设计模式_单例模式
- java设计模式_单例
- Java设计模式(一)_单例设计模式
- Java设计模式_单例设计模式
- 设计模式_单例
- 设计模式_单例设计模式
- java设计模式04_单例模式
- 23种Java设计模式_单例模式_1
- 【java设计模式初探0】_单例模式
- ant table 添加双击展开扩展显示信息
- Java继承
- uva1606 Amphiphilic Carbon Molecules
- getOSType
- DP—最长下降子序列(代码)
- java设计模式_单例模式_学习笔记
- 数据库(oracle的安全性和完整性控制)
- eclipse 部署maven到tomcat
- 【css】css margin,padding 缩略写法
- java一个类不能实现同一泛型接口的两种变体
- Openssl 通用型 对称加密模型
- bzoj1458 士兵占领(最大流)
- C++异常处理
- 最简单的 GitExtensions 教程(持续更新中)