一、创建型模式——单例模式
2016-01-13 16:43
274 查看
一、创建型模式——单例模式
对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题区别:
饿汉模式:加载类慢,但运行时获取对象的速度比较快,线程安全
懒汉模式:加载类快,但运行时获取对象的速度比较慢,线程非安全
饿汉模式:
饿汉模式会在类被加载时创建该类的唯一实例,而不管是否有程序去调用该实例
package 单例模式.饿汉模式; /** * 单例模式Singleton * 保证程序中本类实例有且仅有一个 * @author ZhangJiaMin * */ public class Singleton { //私有构造方法 private Singleton(){}; //创建类的唯一实例,且为该类私有静态成员 private static Singleton instance = new Singleton(); //提供获取实例的类方法 public static Singleton getInstance(){ return instance; } }
懒汉模式:
懒汉模式会在需要用到类的对象时才创建唯一实例
package 单例模式.懒汉模式; /** * 单例模式Singleton * 保证程序中本类实例有且仅有一个 * 懒汉模式会在需要用到类的对象时创建唯一实例 * @author ZhangJiaMin */ public class Singleton { private Singleton(){} private static Singleton instance; public static Singleton getInstance(){ if(instance==null){ instance=new Singleton(); } return instance; } }
测试方法:
package 单例模式.饿汉模式; public class Test { public static void main(String[] args) { Singleton s1=Singleton.getInstance(); Singleton s2=Singleton.getInstance(); if(s1==s2){ System.out.println("s1和s2是同一个实例"); }else{ System.out.println("s1和s2不是同一个实例"); } } }
相关文章推荐
- Spring扫包时导致未加事务
- 从asset复制数据库到data/data/databases
- Ubuntu 14.04安装Chromium浏览器并添加Flash插件Pepper Flash Player
- android webview内打开网址,不让跳浏览器
- hibernate的JPA注解和hbm
- sql笔记
- 减少 WAF 漏报的 8 种方法 !
- 浅谈软件开发人员的职业发展规划
- 离线应用简述
- JS 判断 Radio 单选按钮是否为选中状态 并弹出 值信息
- NSThread的一些方法
- 【杂谈】记近期项目的三次重构
- 关于viewport的一些故事---移动端
- Android String操作
- 《实用技巧》——让你的网站变成响应式的3个简单步骤
- 真正解决RecyclerView在代码中创建无滚动条
- Win7系统开机提示Windows驱动器未就绪的故障原因及解决方法
- 减少 WAF 漏报的 8 种方法 !
- Centos6.5 配置 DRBD8.4.3
- ELK学习11_ELK Stack交流群问题汇总一