2、单例模式(内部类的实现方式)
2017-10-20 01:35
253 查看
package demo; /** * Created by sunyifeng on 17/10/19. */ public class MyObject { // 内部类 private static class MyObjectHandler{ private static MyObject myObject = new MyObject(); }; public MyObject() { // do noting } public static MyObject getInstance() { return MyObjectHandler.myObject; } }
package demo; /** * Created by sunyifeng on 17/10/19. */ public class MyThread extends Thread { @Override public void run() { super.run(); System.out.println(MyObject.getInstance()); } }
package demo; /** * Created by sunyifeng on 17/10/19. */ public class Run { public static void main(String[] args) { MyThread thread1 = new MyThread(); MyThread thread2 = new MyThread(); MyThread thread3 = new MyThread(); thread1.start(); thread2.start(); thread3.start(); } }
运行结果:
demo.MyObject@618d2605
demo.MyObject@618d2605
demo.MyObject@618d2605
程序分析:
1、定义一个静态内部类,在里面创建实例;通过静态的getInstance()方法返回单例。
2、多个线程取到的是同一实例。
相关文章推荐
- 加载一个类时,其内部类是否同时被加载?引申出单例模式的另一种实现方式
- 多线程(匿名内部类的方式实现多线程程序)
- 单例模式-用其他方式实现
- Windows Phone 7 MVVM模式通讯方式之实现Command
- 单例模式--各种实现方式详解
- 【单例模式】的多种实现方式
- 单例模式的几种实现方式
- 单例模式实现方式
- 基于Python中单例模式的几种实现方式及优化详解
- python实现单例模式的四种方式及相关知识解释
- 最安全的单例模式--java使用内部类实现单例模式
- Java基础学习总结(85)——Java中四种线程安全的单例模式实现方式
- java中单例设计模式的两种实现方式
- 生产者/消费者模式的多种Java实现方式
- 关于单例(Singleton)模式实现方式的反思
- 单例模式的两种实现方式对比:DCL (double check idiom)双重检查 和 lazy initialization holder class(静态内部类)
- 内部类实现多线程环境中的单例模式
- Java中四种线程安全的单例模式实现方式
- 常用的五种单例模式实现方式
- Singleton模式的double check实现方式