Java 单例模式
来源:互联网 发布:java链表的实现 编辑:程序博客网 时间:2024/06/08 16:04
使用静态内部类实现单例模式
public class SingletonClass { private static class SingletonClassInstance {// inner static class private static final SingletonClass instance = new SingletonClass(); } public static SingletonClass getInstance() { return SingletonClassInstance.instance; } private SingletonClass() { }}
在这段代码中,因为SingletonClass没有static的属性,因此并不会被初始化。直到调用getInstance()的时候,会首先加载SingletonClassInstance类,这个类有一个static的SingletonClass实例,因此需要调用SingletonClass的构造方法,然后getInstance()将把这个内部类的instance返回给使用者。由于这个instance是static的,因此并不会构造多次。
由于SingletonClassInstance是私有静态内部类,所以不会被其他类知道,同样,static语义也要求不会有多个实例存在。并且,JSL规范定义,类的构造必须是原子性的,非并发的,因此不需要加同步块。同样,由于这个构造是并发的,所以getInstance()也并不需要加同步。
0 0
- java单例模式
- Java单例模式
- java单例模式
- java单例模式
- Java单例模式
- Java单例模式
- java单例模式
- Java单例模式
- java 单例模式
- java单例模式
- java单例模式
- java单例模式
- java 单例模式
- JAVA单例模式
- java单例模式 .
- Java 单例模式
- Java单例模式
- Java 单例模式
- Android-Universal-Image-Loader 属性设置
- Android 开发测试环境切换工具
- SLF4J versions 1.4.0 and later requires log4j 1.2.12 or later
- hibernate @Entity @Table 实体类中不可以随便添加与表字段不对应的get方法,如增加请加注解 @Transient
- Ddr2,ddr3,ddr4内存条的读写速率
- Java 单例模式
- 【UI】【View】自定义布局方法与注意事项(一)
- C++中const用法总结
- uva536 Tree Recovery
- 单片机准双向口IO详解
- cocoapods 安装
- AMD规范
- 公共函数库的介绍与使用
- Animation动画详解(八)——PropertyValuesHolder与Keyframe