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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© MrDevil 中级黑马   /  2016-5-31 10:32  /  872 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Demo1_Singleton {

        /**
         * @param args
         * * 单例设计模式:保证类在内存中只有一个对象。
         */
        public static void main(String[] args) {
                //Singleton s1 = new Singleton();
               
                Singleton s1 = Singleton.s;                                //成员变量被私有,不能通过类名.调用
                //Singleton.s = null;
                Singleton s2 = Singleton.s;
               
                System.out.println(s1 == s2);
               
        /*        Singleton s1 = Singleton.getInstance();
                Singleton s2 = Singleton.getInstance();
               
                System.out.println(s1 == s2);*/
        }

}

/*
* 饿汉式

class Singleton {
        //1,私有构造方法,其他类不能访问该构造方法了
        private Singleton(){}
        //2,创建本类对象
        private static Singleton s = new Singleton();
        //3,对外提供公共的访问方法
        public static Singleton getInstance() {                                //获取实例
                return s;
        }
}*/
/*
* 懒汉式,单例的延迟加载模式
*/
/*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;
        }
}*/
/*
* 饿汉式和懒汉式的区别
* 1,饿汉式是空间换时间,懒汉式是时间换空间
* 2,在多线程访问时,饿汉式不会创建多个对象,而懒汉式有可能会创建多个对象
*/

class Singleton {
        //1,私有构造方法,其他类不能访问该构造方法了
        private Singleton(){}
        //2,声明一个引用
        public static final Singleton s = new Singleton();
       
}

3 个回复

倒序浏览
我是来混积分的  
回复 使用道具 举报
还没学到
回复 使用道具 举报

就喜欢你这直白的,哈哈
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马