Java设计模式_单例设计模式
来源:互联网 发布:手机均衡器软件 编辑:程序博客网 时间:2024/05/23 12:18
/** * 单例设计模式:饿汉式,不适用于多线程,效率低 */public class SingleTest { //定义一个私有的构造方法 private SingleTest() {} //将自身的实例对象设置成静态 final private static final SingleTest instance = new SingleTest(); private static SingleTest getInstance(){ return instance;}
}
/** * 单例设计模式:饱汉式,非线程安全 */public class SingleTest { //定义一个私有的构造方法 private SingleTest() {} //将自身的实例对象设置成静态(不初始化,没有final修饰) private static SingleTest instance ; private static SingleTest getInstance(){ if(instance==null) instance = new SingleTest(); return instance; }}/** * 单例设计模式:饱汉式,线程安全,效率不高 */public class SingleTest { //定义一个私有的构造方法 private SingleTest() {} //将自身的实例对象设置成静态(不初始化,没有final修饰) private static SingleTest instance ; private static synchronized SingleTest getInstance(){ if(instance==null) instance = new SingleTest(); return instance; }}/** * 单例设计模式:饱汉式,最优解 */public class SingleTest { //定义一个私有的构造方法 private SingleTest() {} //将自身的实例对象设置成静态(不初始化,没有final修饰,使用volatile保证了线程访问时instance变量的可见性, // 避免了instance初始化时其他属性还没赋值完时被另外的线程调用) private static volatile SingleTest instance ; private static SingleTest getInstance(){ // 对象实例化时与否判断(不使用同步代码块,instance不等于null时,直接返回对象,提高运行效率) if(instance==null) { //同步代码块(对象未初始化时,使用同步代码块,保证多线程访问时对象在第一次创建后,不再重复被创建) synchronized (SingleTest.class) { //未初始化,则初始instance变量 if(instance==null) instance = new SingleTest(); } } return instance; }}
0 0
- Java设计模式_单例模式
- java设计模式_单例模式
- java设计模式_单例模式
- java设计模式_单例模式
- Java-设计模式_单例模式
- Java 设计模式_单例模式
- Java设计模式(一)_单例设计模式
- Java设计模式_单例设计模式
- 设计模式_单例设计模式
- java设计模式_单例
- Java设计模式_(创建型)_单例模式
- java基础_设计模式_单例模式
- java设计模式_单例模式_学习笔记
- 设计模式_单例
- java设计模式04_单例模式
- 23种Java设计模式_单例模式_1
- 【java设计模式初探0】_单例模式
- 设计模式_单例模式
- 数据访问
- 编程极简入门(python)-04-变量
- 链表的简单操作
- 完全背包 动态规划 模版
- 数据库系统概论——03——关系代数
- Java设计模式_单例设计模式
- tensorflow中precision,recall和F1
- Unity3D中Monobehaviour中自带的重要函数
- Java中的并发工具类:Semaphore基本理解和底层实现
- 编程极简入门(python)-05-条件判断
- TensorFlow学习笔记(二):TensorFlow入门
- 拉普拉斯金字塔融合原理公式
- iPhone开发者 模式
- 业务逻辑