Java 单例模式【懒汉与饿汉】
来源:互联网 发布:找男妓的体验知乎 编辑:程序博客网 时间:2024/06/06 02:30
最近在看点算法的东西,有点收获就记录一下。
单例模式的概念学过面向对象的应该都清楚,这里就不赘述了。需要记录一下的是单例模式的两种写法:懒汉模式和饿汉模式
这两者的概念看名字其实有点难理解,但是仔细想想很贴切,我用自己的语言通俗一点解释一下,可能并不能严谨的定义,但是有助于理解——
懒汉模式:即什么时候需要用到这个类的对象,就什么时候去实例化,不用到就永远都不实例化。
饿汉模式:即一开始实例化好,用不用再说,反正先准备好。
看代码来对比区别:
/*** 懒汉写法(最常见。获取实例相对慢,但是加载类相对快)*/public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }/*** 饿汉写法(比较少见。获取实例相对快,但是加载类相对慢)*/ public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){} public static Singleton getInstance() { return instance; } }
上述懒汉模式的写法存在线程不安全的问题,即当多个线程调用这个单例的时候,可能会出现重复创建实例的现象,可以通过以下方式来解决:
public class Singleton { private static Singleton instance; private Singleton (){} public static synchronized Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }
多数情况下,不需要这样进行同步处理,因为这样做代码的效率会变低,不需要特殊考虑多线程的情况则不要这样去做。
以上是一点学习心得,感谢阅读!
阅读全文
0 0
- Java 单例模式【懒汉与饿汉】
- 单例模式(懒汉模式与饿汉模式)
- 单例模式之 --饿汉模式与懒汉模式
- Java 单例模式之饿汉模式 懒汉模式
- Java单例模式之饿汉模式与懒汉模式
- java单例模式之饿汉模式与懒汉模式
- 设计模式:单例模式,懒汉与饿汉
- JAVA单例设计模式(饿汉懒汉)
- 单例设计模式-懒汉饿汉
- java 单例模式:饿汉式与懒汉式
- java 单例模式:饿汉式与懒汉式 区别
- java 单例模式:饿汉式与懒汉式
- 单例模式懒汉式与饿汉式java讲解
- java单例设计模式 懒汉式与饿汉式
- 设计模式——单例模式之“饿汉模式”与“懒汉模式”
- 设计模式之单例模式,懒汉模式与饿汉模式
- 单例中的懒汉与饿汉
- 懒汉单例模式与饿汉单例模式
- 【编译原理】第四章作业
- hdu5873 Football Games
- CodeForces
- 目前最新jquery-ui-1.12.1的使用以及如何添加到自己的项目中去
- Servlet 学习总结
- Java 单例模式【懒汉与饿汉】
- Redis
- springmvc中@RequestHeader注解使用
- 函数式编程
- linux作业练习
- Java调用C++ DLL
- mysql优化-建立索引技巧
- 输入输出管理及文件权限的练习
- 蓝桥杯算法训练 P1103(复数运算)