java设计模式(三)---单例模式

来源:互联网 发布:oppo手机照片导入mac 编辑:程序博客网 时间:2024/06/01 10:13

一、单例模式的基本定义:
一个类有且仅有一个实例,并且提供了一个全局的访问点
二、单例模式适用场景:

 1. 需要频繁的实例化然后销毁对象 2. 创建对象时耗时或者消耗资源过多,但又经常用到的对象 3. 有状态的工具对象 4. 频繁访问数据库或者文件的对象 5. 资源共享情况下,避免资源操作时导致性能损耗 6. 控制资源的情况下,方便资源之间的互相通信,如线程池

三、单例模式的特点:
1.只能有一个实例
2.单例必须是自己来创建自己的唯一实例
3.单例必须给其他使用者提供接口
四、实现单例模式:
实现单例模式的方法一般有三种,面试的时候有可能会让写一个单例模式的实现。所以还是有必要记一下代码的。可以分几步来记
1.单例模式的构造方法必须是私有的,因为不能让其他类调用的时候直接new。
2.提供的getInstance必须是静态方法,要不然别人也访问不到。
3.类实例的定义必须也是静态的。
三种实现方法如下:
I.饿汉式:单例实例在类装载的时候就构建,急切初始化。
顾名思义,饿汉就是一个经常挨饿的汉子,那么他的心里就是不管我现在饿不饿,我都得备着干粮,绝对不能吃的时候没有,那么就在类加载的时候直接new,不管用不用的到,我先初始化。
单例
优点:线程安全,初始化好了,所以调用的时候不用再去初始化,会很快
缺点:如果初始化了,但是一直没有用到,那就尴尬了,利用效率不高
II.懒汉式:单例在第一次使用的时候再加载,延迟初始化
同样,懒汉,就说明非常懒,属于不饿到不行就不出去找吃的,呵呵,所以只有在使用到实例的时候再初始化。
懒汉
优点:用到的时候加载,减少了不必要的资源占用。‘’
缺点:非线程安全
III.双重检查(懒汉加强版)
主要是加同步关键字,保证线程安全
双重
优点:线程安全,避免初始化浪费资源
缺点:第一次加载的时候可能会慢点

单例的使用
EHanTest test = EHanTest.getInstance();
简单的不要不要的,哈哈

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 中牟游乐场 中牟 旅游 中牟是哪里 中牟外国语 中牟硅藻泥 中牟婚纱照 漯河到中牟 中牟瑜伽馆 中牟自考办 中牟相亲网 中牟电视台 中牟做人流 中牟大白蒜 中牟出租房 中牟游泳馆 中牟万洪路 中牟摘草莓 去中牟的车 中牟2手房 中牟读音 中牟到巩义 中牟教育网 中牟组工网 郑州-中牟 中牟的酒店 中牟驴友会中牟论坛 洛阳到中牟 中牟跆拳道 中牟交友群 中牟富士康 中牟大盘鸡 中牟交友吧 中牟市 中牟县人民医院 中牟限行区域 中牟雁鸣湖景区旅游 郑州到中牟汽车时刻表 郑州中牟邮编 中牟限号区域 中牟小吃培训 中牟房产信息网