A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 机智的黄图哥 中级黑马   /  2015-4-16 19:58  /  466 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

单例写法两种:
    * (1)饿汉式 开发用这种方式。
    *
            //饿汉式
            class Singleton {
                //1,私有构造函数
                private Singleton(){}
                //2,创建本类对象
                private static Singleton s = new Singleton();
                //3,对外提供公共的访问方法
                public static Singleton getInstance() {
                    return s;
                }
               
                public static void print() {
                    System.out.println("11111111111");
                }
            }
    * (2)懒汉式 面试写这种方式。多线程的问题?
    *
            //懒汉式,单例的延迟加载模式
            class Singleton {
                //1,私有构造函数
                private Singleton(){}
                //2,声明一个本类的引用
                private static Singleton s;
                //3,对外提供公共的访问方法
                public static Singleton getInstance() {
                    if(s == null)
                        //线程1,线程2
                        s = new Singleton();
                    return s;
                }
               
                public static void print() {
                    System.out.println("11111111111");
                }
            }
    * (3)第三种格式
    *
            class Singleton {
                private Singleton() {}
            
                public static final Singleton s = new Singleton();//final是最终的意思,被final修饰的变量不可以被更改

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马