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

© zlp19940327 中级黑马   /  2015-4-15 00:31  /  320 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*  
        单例模式方式一:先初始化对象
        称为:”饿汉式“
                Single类一进内存,就已经创建好了对象
        class Single2{
                private Single2(){}
                public static Single2 s=new Single2();
                public static Single2 getInstance(){
                        return s;
                }
        }
*/
/*
        单例模式方式二:对象是方法被调用时初始化,也叫做对象的延时加载
        称为:”懒汉式“:
                Single类进内存,对象还没有存在,只有调用了getInstance()方法时才建立对象
*/
class Single2{
        int num;//示例
        private Single2(){}
        private static Single2 s=null;
        public static Single2 getInstance(){
                if(s==null){
                        synchronized(Single2.class){//加锁
                                if(s==null){
                                        s=new Single2();
                                }
                        }       
                }
                return s;
        }
}
/*
        记住原则:定义单例,建议使用饿汉式
                          面试多考:懒汉式
*/
class SingleDemo2
{
        public static void main(String[] agrs){
                Single2 s=Single2.getInstance();
                Single2 s2=Single2.getInstance();
                s.num=12;//通过s去修改num  
                System.out.println(s2.num);//通过输出s2打印num 12
        }
}


3 个回复

倒序浏览
我也刚学了单例设计模式,设计模式有挺多的。
回复 使用道具 举报
加油加油
回复 使用道具 举报
毕老师的经典例子啊,绝对顶
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马