创建模式之单列模式
来源:互联网 发布:mysql h localhost 编辑:程序博客网 时间:2024/06/05 05:10
package com.djk.design.factory.singlen;public class Single {private static Single single = new Single();private Single (){}public static Single getInstance(){return single;}}
这个单列是饿汉式的,一加载类的时候就初始化,优点是没有线程安全的问题,但是缺点是如果类初始化做的东西比较多的话会浪费资源
package com.djk.design.factory.singlen;public class Single {private static Single single;private Single (){}public static Single getInstance(){if (null == single){single = new Single();}return single;}}
这是懒汉式的单列。优点是类的初始化延时了 缺点是在多线程的坏境下可能会生成多个实例
package com.djk.design.factory.singlen;public class Single {private static Single single;private Single (){}public static synchronized Single getInstance(){if (null == single){single = new Single();}return single;}}
这是针对懒汉式的单列线程不安全而出现的,优点是线程安全的缺点是效率低。
package com.djk.design.factory.singlen;public class Single {private static Single single;private Single (){}public static synchronized Single getInstance(){synchronized (Single.class){if (null == single){synchronized (single) {single = new Single();}}}return single;}}
双重检查机制,缺点是在多线程的场景下会返回一个初始化不完整的对象
package com.djk.design.factory.singlen;public class Single {private Single (){}private static class InnerClass{private static Single sin = new Single();}public static synchronized Single getInstance(){return InnerClass.sin;}}
public Object readResolve() {
return instance;
}
这个方法的作用是解决单列类实现序列化的时候反序列化防止生成多个对象用的
0 0
- 创建模式之单列模式
- 创建之单列模式设计模式测试
- 设计模式之单列
- 单列模式之volatile
- 设计模式之单列模式
- 设计模式之单列模式
- 设计模式之单列模式
- 设计模式之单列模式
- java面试之单列模式
- java设计模式之单列
- 单列模式
- 单列模式
- 单列模式
- 单列模式
- 单列模式
- 单列模式
- 单列模式
- 单列模式
- java实现简单计算器算法--支持浮点数运算
- HTML5 canvas 可拖拽时钟
- 腾讯qq6.3官方版 v12390 体验版
- 漫谈选人与培训
- https 网站时代来临?
- 创建模式之单列模式
- objective-c 中数据类型之三 数组(NSArray) 高级操作
- 逻辑坐标和设备坐标的区别
- It's the final screen after one more month. Cheers.
- HTML5开发-在你的游戏应用中加入广告
- 删掉.svn文件夹的方法
- 用VirtualBox安装debian6的详细方法步骤
- 内存管理部分的几点思考
- 《数据结构》“约瑟夫问题”解法征集