单例模式
来源:互联网 发布:项目经理转行数据分析 编辑:程序博客网 时间:2024/06/06 03:57
单例模式有以下特点:
1.单例类只能有一个实例;
2.单例类必须自己创建自己的唯一实例;
3.单例类必须给所有其他对象提供这一实例。
懒汉单例模式:
饿汉单例模式:
饿汉式和懒汉式区别
从名字上来说,饿汉和懒汉:
饿汉就是类一旦加载,就把单例初始化完成,保证getInstance的时候,单例是已经存在的了;
懒汉比较懒,只有当调用getInstance的时候,才回去初始化这个单例。
从以下两点再区分以下这两种方式:
1.线程安全:
饿汉模式:天生就是线程安全的,可以直接用于多线程而不会出现问题;
懒汉模式:本身是非线程安全的,可以通过synchronized实现线程安全。
2.资源加载和性能:
饿汉模式:在类创建的时候就实例化一个静态的实例出来,不管之后用不用这个实例,这个实例会一直存在,占据一定的内存,相应的,在第一次调用的时候速度也会更快,因为资源已经初始化好了;
懒汉模式:在第一次使用该单例的时候才会创建这个实例出来,第一次调用的速度会相对慢一点,实例长时间不使用的话,系统会自动回收。
一般使用懒汉型单例模式!
0 0
- 单例、单例模式
- 单例模式-多线程单例模式
- 单件模式(单例模式)
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- PHP模式-单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 单例模式(单子模式)
- 设计模式-单例模式
- [设计模式] 单例模式
- 关于原码 补码
- oracle——SQL复习04
- Python 高级编程笔记之编写一个包
- 322. Coin Change LeetCode
- android - ViewPager:自动播放AutoScrollViewPager、普通的ViewPager 通过ViewPagerIndicator
- 单例模式
- QSoundEffect(qaudio): Error decoding source 等用到QSound出错的解决方法
- 手把手教你高德基础地图+定位+设置Marker实现
- cocos2d-x 滚动数字label
- Codeforces Round #345 (Div. 1) C. Table Compression (并查集)
- 树状数组基础
- iOS ip 地址获取
- Oracle数据库,实例,表空间,用户,表之间的关系简析
- (C++)多重继承