单例模式
来源:互联网 发布:数据分析面试题及答案 编辑:程序博客网 时间:2024/06/16 06:45
单例模式特点1 ,某个类只有一个实例,2,必须自己创建自己的实例,3,向系统提供唯一的实例
饿汉模式:在类被加载的时候就将自己实例化,无须考虑多线程。从系统资源利用来说,因为开始就加载,会使加载时间变长
class EagerSingleton { private static final EagerSingleton instance = new EagerSingleton(); private EagerSingleton() { } public static EagerSingleton getInstance() { return instance; } }
懒汉模式:第一次使用就自己实例化,不用一直占据系统资源,实现延迟加载,但是要处理好多线程访问问题
一种更好的单例模式:由于静态单例对象没有作为Singleton的成员变量直接实例化,因此类加载时不会实例化Singleton,第一次调用getInstance()时将加载内部类HolderClass,在该内部类中定义了一个static类型的变量instance,此时会首先初始化这个成员变量,由Java虚拟机来保证其线程安全性,确保该成员变量只能初始化一次。由于getInstance()方法没有任何线程锁定,因此其性能不会造成任何影响。class Singleton {private Singleton() {}private static class HolderClass { private final static Singleton instance = new Singleton();}public static Singleton getInstance() { return HolderClass.instance;}}
0 0
- 单例、单例模式
- 单例模式-多线程单例模式
- 单件模式(单例模式)
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- PHP模式-单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 单例模式(单子模式)
- 设计模式-单例模式
- [设计模式] 单例模式
- Qt 窗体的模态与非模态
- Android Packaging Problem错误解决方法
- 神奇的getattr - Python
- AJAX学习笔记二
- php过滤和转义函数
- 单例模式
- NYOJ 19 擅长排列的小明
- Thinkphp中函数的使用方法
- JAVA中创建ZIP文件,并向ZIP文件中写入并读取条目和数据
- Android-Volley-联网的基本用法
- 设计模式-观察者模式
- 在windows上安装ubutnu双系统,并且利用easybcd设置开机双启动项 并按照sougou输入法
- [EverString收录] Dr.Elephant用户指南
- linux如何查找大文件以及大文件夹