`

小技巧:如何写单例

    博客分类:
  • JAVA
阅读更多
第一种:
    public class A
    {
        private static final A instance = new A();
        
        private A()
        {            
        }
        
        public static A getInstance()
        {
            return instance;
        }
    }


第二种:
    public class A
    {
        private static A instance = null;
        
        private A()
        {            
        }
        
        public static A getInstance()
        {
            if (null == instance)
            {
                synchronized (A.class)
                {
                    if (null == instance)
                    {
                        instance = new A();
                    }
                }
            }
            
            return instance;
        }
    }


第三种:
    public enum A
    {
        instance;
        
        private A()
        {            
        }
        
        public static A getInstance()
        {
            return instance;
        }
    }

分享到:
评论

相关推荐

    Collection学习笔记——每天一个Java小技巧

    是单例集合的顶层接口 它提供了更具体的子接口的实现,如set和list. Collection集合常用方法 方法名 说明 boolean add(E e) 添加元素 boolean remove(Object o) 从集合中移除指定的元素 void clear() ...

    Unity-3D-Asteroids:一个简单的Asteroids克隆。 在3D中

    软件模式:OOP,合成,单例,对象池,观察者,... 组合与OOP:接口+继承与通过组件的对象组合 MonoBehaviour +扩展 序列化 习语:一对多 事件:C#委托事件与UnityEvents 协程 最佳化 工作流程选择 总体过程: 您...

    Java基础知识点总结.docx

    单例设计模式:★★★★★ 156 工厂模式★★★★★ 159 抽象工厂模式★★★★★ 163 建造者模式 170 原型模式 177 适配器模式 182 桥接模式 188 过滤器模式 192 组合模式 193 装饰器模式★★★★★ 196 外观模式 201...

    疯狂JAVA讲义

    6.3.2 单例(Singleton)类 176 6.4 final修饰符 177 6.4.1 final变量 177 6.4.2 final方法 181 6.4.3 final类 182 6.4.4 不可变类 182 6.4.5 缓存实例的不可变类 186 6.5 抽象类 188 6.5.1 抽象方法和抽象...

    Android中怎样避免创建不必要的对象

    前言 随着在APP中分配更多的对象,你就得实施定期的强制垃圾...本文会介绍一些常见的避免创建对象的场景和方法,其中有些属于微优化,有的属于编码技巧,当然也有确实能够起到显著效果的方法。 使用单例 单例是我们

    Python Cookbook

    1.12 控制大小写 25 1.13 访问子字符串 26 1.14 改变多行文本字符串的缩进 29 1.15 扩展和压缩制表符 31 1.16 替换字符串中的子串 33 1.17 替换字符串中的子串-Python 2.4 34 1.18 一次完成多个替换 36 1.19 ...

    php网络开发完全手册

    5.7.2 单例模式(Singleton Pattern) 81 5.7.3 工厂模式(Factory Pattern) 83 5.8 接口与抽象类 86 5.8.1 接口的定义 86 5.8.2 单一接口的实现 87 5.8.3 多重接口的实现 87 5.8.4 抽象类 88 5.9 小结 90 第6章 ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例064 字符串大小写转换 82 实例065 字符与Unicode码的转换 83 4.2 辨别字符串 84 实例066 判断用户名是否正确 84 实例067 用户名排序 85 实例068 判断网页请求与FTP请求 86 实例069 判断文件类型 87 实例070 判断...

    传智播客扫地僧视频讲义源码

    10_MyString类案例_其他技巧 11_MyString类案例_重载右移操作符 12_C++基础课程day03-day05_知识体系梳理 13_作业和考试 源码及文档 01_继承的概念 02_子类可以访问父类的属性和方法 03_派生类的访问控制 04_派生类...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例091 统一上传文件名称的大小写 125 实例092 论坛中直接输出HTML脚本 126 实例093 统计帖子标题的长度 127 实例094 计算论坛帖子的字节数 128 实例095 实现帖子内容的定位查找 129 实例096 去除帖子标题的首尾...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例091 统一上传文件名称的大小写 125 实例092 论坛中直接输出HTML脚本 126 实例093 统计帖子标题的长度 127 实例094 计算论坛帖子的字节数 128 实例095 实现帖子内容的定位查找 129 实例096 去除帖子标题的首尾...

Global site tag (gtag.js) - Google Analytics