JAVA_单例设计模式
来源:互联网 发布:mac上的养成游戏 编辑:程序博客网 时间:2024/06/07 07:08
单例设计模式:
*单例类只有一个实例。
*单例类必须自己创建自己的唯一实例。
*单例类必须给所有其他对象提供这一实例
*单例分为饿汉试和懒汉式
- 懒汉式:
package com.nyist.Single;/** * Created with IntelliJ IDEA. * User: 子玉 * Date: 2017-10-12 * Time: 20:38 * Description:单例设计模式_懒汉设计模式 懒就要付出代价,必然线程是相对来说是不安全的!!! */public class GargageLazy { private static GargageLazy instance; /** * 这个地方的线程是不安全的 如果说一个线程第一次访问的时候进入到了if语句很显然第一次是满足条件的,但是 * 根据多线程的特点,存在当他进入到if判断下面一句的时候有可能CPU的执行权被第二个线程抢去了, * 所以说这样的话并不能满足单例的初衷,只能满足一个.所以说需要加锁,实现同步 * @return */ public static GargageLazy getInstance(){ synchronized(GargageLazy.class){//类的描述符为锁企标,同步代码块的效率并不高所以 if(instance == null){ synchronized (GargageLazy.class){ instance = new GargageLazy(); } } } return instance; } private GargageLazy(){}}
2.饿汉式
package com.nyist.Single;/** * Created with IntelliJ IDEA. * User: 子玉 * Date: 2017-10-12 * Time: 20:33 * Description:单利模式__饿汉式 饿汉,可以形象的理解成饿的很,所以说对象先New出来,这也是和懒汉最 * 本质的区别!!(我就是这样记的!) */public class GargageBox { /** * 私有化构造,对象不能随便的实例化,静态的访问, */ //静态的成员变量:先New出来一个 private static GargageBox instance = new GargageBox(); //得到私有的对象的方法 private GargageBox getInstance(){ return instance; } private GargageBox(){ }}
饿汉和懒汉是单例两种典型的特点.线程安全的相对来说是饿汉模式.我记忆的方法和理解的部分都在注解的地方写的很清楚了.如果有什么错误,欢迎大家留言指正.希望一起进步.
阅读全文
0 0
- java_单例设计模式
- JAVA_单例设计模式
- java_(1)设计模式(单例模式)
- Java_单例模式
- java_单例模式
- Java_设计模式_单例设计模式(饿汉式和懒汉式)
- JAVA_多线程_单例模式
- JAVA_多线程_单例模式
- JAVA_多线程_单例模式
- java_面向对象_02_静态(代码块)_main_单例设计模式
- JAVA_设计模式
- Java_单例
- JAVA_形象生动的单例模式总结
- 设计模式--单例
- 单例设计模式
- 设计模式----单例
- 单例设计模式
- 单例设计模式
- bzoj1179 [Apio2009]Atm
- C++直接初始化与复制初始化的区别深入解析
- 在anaconda中安装xgboost,基于win10 32/64位系统
- 微信授权读取用户信息
- 巩固基础——操作系统(1)
- JAVA_单例设计模式
- NOIP-2013火柴排队
- 边缘计算:万物互联新型计算模型
- AngularJS过滤器filter,orderBy排序,删除全部数据
- C++笔记——命名空间namespace
- Java面试题Day3
- r语言 偏度峰度
- spoj Repeats 后缀数组
- 基于kaldi、thchs30 的离线中文识别