设计模式-单例模式
来源:互联网 发布:淘宝双11红包微信群 编辑:程序博客网 时间:2024/05/22 23:17
双重判断
public class TestSingleton {private TestSingleton(){}private static TestSingleton instance;;public static TestSingleton getSingleton(){if(instance==null){synchronized(TestSingleton.class){if(instance==null){instance = new TestSingleton();}}}return instance;}}优点:使用双重检查,很大程度上避免了不必要的锁开销,提高了执行效率。这里要注意,虽然未使用volatile关键字,但是这里的synchronized已经保证了INSTANCE写操作对其它线程读操作的可见性。
静态常量
public class TestSingleton {private TestSingleton(){}private static final TestSingleton instance = new TestSingleton();public static TestSingleton getSingleton(){return instance;}}优点:实现简单,无需使用动态代码块
缺点:在类装载是完成初始化。若实例一直未被使用,会造成资源浪费。
内部静态类
public class TestSingleton {private TestSingleton(){}public static TestSingleton getSingleton(){return InnerClass.Instence;}private static class InnerClass{private static final TestSingleton Instence=new TestSingleton();}}
优点:无线程同步问题,实现了懒加载,只有调用getSingleton()才会创建实例。
参考:http://www.jasongj.com/design_pattern/singleton/
阅读全文
0 0
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 设计模式-单例模式
- [设计模式] 单例模式
- 设计模式--单例模式
- 设计模式---单例模式
- 设计模式--单例模式
- 设计模式 -----单例模式
- 设计模式:单例模式
- java.util.ConcurrentModificationException异常分析
- java的注解规范
- Maven的pom.xml文件结构之环境配置distributionManagement
- cherrytree centos7
- Shader 全息效果
- 设计模式-单例模式
- WEB前端听课笔记——HTML之布局标签
- Preemphasizer API 及预加重
- DOS命令
- 三天学会HTML5——SVG和Canvas的使用
- 使用maven搭建ssm框架遇到的spring找不到配置文件问题
- sns分享 jia.js的使用 jiathis插件
- 数组
- 好看的思维导图案例,你想做出来吗