java二十三种设计模式----(二)单例设计模式 :“懒汉式”与“饿汉式”的区别 为什么通常使用饿汉式
来源:互联网 发布:淘宝店铺名字测试打分 编辑:程序博客网 时间:2024/05/22 00:15
首先说下单例设计模式
单例模式:保证整个应用中某个实例有且只有一个。
有些对象我们只需要一个,
比如:配置文件,工具类,线程池,缓存,日志对象等。
如果创造出多个实例,就会导致许多问题,不如占用过多资源,不一致的结果等,
应用场合:有些对象只需要一个就足够了,如古代皇帝
作用:保证整个应用程序中某个实例有且只有一个。
类型:饿汉式,懒汉式。
下面用代码简单介绍下饿汉式和懒汉式
饿汉式
package 单例设计模式;//饿汉式:public class Singleton {//1,将构造方法私有化,不允许外部直接创建对象。private Singleton(){}//2,创建类的唯一实例,使用private static 修饰 private static Singleton instance=new Singleton();//一加载类就创建对象(实例)//3,提供一个用于获取实例的方法,使用public static修饰。public static Singleton getInstance(){return instance;}}
懒汉式
package 单例设计模式;//懒汉式public class Singleton2 {//1,将构造方法私有化,不允许外部直接创建对象。private Singleton2(){}//2,声明类的唯一实例,使用private static修饰。private static Singleton2 instance;//3,提供一个用于获取实例的方法,使用public static修饰。public static Singleton2 getInstance(){if(instance==null){instance=new Singleton2();}return instance;}}
饿汉式和懒汉式的区别
所谓“懒汉式”与“饿汉式”的区别,是在与建立单例对象的时间不同。
懒汉式:是在你真正用到的时候才去建这个单例对象:(用时才创建)
饿汉式:是在不管你用的用不上,一开始就建立这个单例对象 (用不用都先创建)
一:区别
饿汉式:
1,特点:饿汉式加载类时比较慢,但运行时获取对象的速度比较快。
在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变
2,线程安全:线程安全
懒汉式
1,特点:懒汉式加载类时比较快,但运行时获取对象的速度比较慢
2,线程安全:线程不安全。
二:优缺点对比
懒汉式
优点是延时加载实例(对象)、 是在需要的时候才创建对象。缺点是应该用同步。
如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的。
饿汉式
饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变
推荐使用饿汉式
0 0
- java二十三种设计模式----(二)单例设计模式 :“懒汉式”与“饿汉式”的区别 为什么通常使用饿汉式
- 单例设计模式二---懒汉式
- java单例设计模式 懒汉式与饿汉式
- 【单例设计模式】懒汉式跟饿汉式的区别
- JAVA单例设计模式(饿汉式和懒汉式的区别)
- Java 单例设计模式(懒汉式 饿汉式)
- 单例设计模式(懒汉式和饿汉式区别)
- 设计模式-单例模式(饿汉式及懒汉式的Java实现)
- 单例设计模式 饿汉式 懒汉式
- 单例设计模式-饿汉式-懒汉式
- 单例设计模式:饿汉式,懒汉式
- 设计模式之单例模式(饿汉式,懒汉式)
- 设计模式:单例中的 饿汉式 与懒汉式
- JAVA基础——单例设计模式(饿汉式与懒汉式)
- java单例设计模式 饿汉式 懒汉式
- Java单例设计模式(饿汉式和懒汉式)
- java 单例设计模式之:懒汉式、饿汉式
- java设计单例模式【饿汉式和懒汉式】
- google-sdk-动态更新手机主题(简单版)
- android 技巧
- SSL通关之keytool 命令(二)
- 迷人的巴宝莉时装附件配置
- 迷人和漂亮的十几岁的明星
- java二十三种设计模式----(二)单例设计模式 :“懒汉式”与“饿汉式”的区别 为什么通常使用饿汉式
- Bitmap获取图片的高度与宽度
- 【学习笔记】C++高级程序设计:STL:函数对象
- Jersey中的基本权限认证及访问程序
- hadoop 分布式缓存
- linux SVN Server 环境搭建
- 求点到线段的垂足
- const 详解
- 无公网IP如何搭建openvpn配置及让外网连接访问