静态内部类的一些认识---->单例模式
来源:互联网 发布:wps可以在mac上用吗 编辑:程序博客网 时间:2024/06/05 02:25
参考http://blog.csdn.net/davidluo001/article/details/50173823
question 1:类加载的时候,其静态内部类是否被加载?
public class SingleDemo {public static void main(String[] args) {CEO ceo=new CEO();}}class CEO {{System.out.println("@@");}static class InnerClass{static{System.out.println("!!");}}}运行结果:
所以,加载一个类的时候其静态内部类(包括内部类)不会被加载。因为一个类被加载,当且仅当某个静态成员(静态域、构造器、静态方法等)被调用时发生。
根据内部类不会在外部类加载的时候同时被加载这一特性,引出单例模式的另一种实现方式:
public class SingleDemo {public static void main(String[] args) {CEO ceo=CEO.getInstance();CEO ceo1=CEO.getInstance();System.out.println(ceo);System.out.println(ceo1);}}class CEO {private CEO(){System.out.println("@@");}public static CEO getInstance(){return InnerClass.INSTANCE;} static class InnerClass{public static final CEO INSTANCE=new CEO();static{System.out.println("InnerClass");}}}运行结果:
由此可以看出:虽然调用了两次getInstance(),但最终生成了一个实例,并且内部类只加载了一次
由于内部静态类只会被加载一次,故该实现方式时线程安全的
0 0
- 静态内部类的一些认识---->单例模式
- 单例模式---静态内部类
- 单例模式之静态内部类
- Java静态内部类单例模式
- 单例模式--静态内部类
- 单例模式静态内部类
- 单例模式-静态内部类Demo
- 单例模式<静态内部类>
- 静态内部类实现单例模式
- 单例模式-静态内部类的实现(线程安全)
- java 常见的单例模式,推荐静态内部类
- 【Java】线程安全的单例模式----静态内部类
- 利用静态内部类实现的单例模式
- 静态内部类、静态变量的加载次数-理解静态内部类实现线程安全的单例模式
- 静态内部类、静态变量的加载次数-理解静态内部类实现线程安全的单例模式
- 静态内部类、静态变量的加载次数-理解静态内部类实现线程安全的单例模式
- 静态内部类、静态变量的加载次数-理解静态内部类实现线程安全的单例模式
- 静态内部类、静态变量的加载次数-理解静态内部类实现线程安全的单例模式
- 深度学习基于VGGNet的人脸识别系统及fine-tuing
- laravel 按条件分页
- 5.代理模式
- UDP编程补充——UDP广播程序的实现
- 音频相关
- 静态内部类的一些认识---->单例模式
- ReactNative:学习props的使用
- Java线程(Thread)调度
- JAVA基础总结-2 字符类
- android developer tiny share-20160905
- 设计模式 - 状态模式
- 运行python脚本的几种方法
- 数据库坏块的部分还原
- 数据库路由中间件MyCat