黑马程序员技术交流社区

标题: 饿汉式与懒汉式 [打印本页]

作者: 微笑的背后3    时间: 2015-8-8 13:20
标题: 饿汉式与懒汉式
饿汉式
class Single
{
private Single(){}
        private static Single s=new Single();
               
        public static Single getInstance()
        {
                return s;
        }
}
懒汉式
class Single
{
        private Single(){}
        private static Single s=null;
        public static Single getInstance()
        {
                if(s==null)
                        s=new Single();
                return s;
}
饿汉式:先初始化对象
懒汉式:判断后再初始化对象,相比饿汉式效率低一些,还容易出错
作者: 只是忽然间    时间: 2015-8-8 13:31
点一下赞,长点见识
作者: Wqi    时间: 2015-8-8 15:51
懒汉式的同步是要记住的。
作者: 晓月残魂    时间: 2015-8-8 20:06
class Single
{
        private Single(){}   //构造函数私有化,从而外部不能直接创建其对象
        private static Single single = null;
        private static Single getInstance()
        {
                if(single == null)//可以有效防止在对象存在的情况下,判断同步锁
                {
                        synchronized(Single.class)//锁是静态方法所在类的字节码文件对象
                        {
                                if(single ==null)
                                {
                                        single = new Single();
                                }
                        }
                }
                return single;
        }
}

作者: 两木三水    时间: 2015-8-8 22:29
赞一个
作者: 王竹根    时间: 2015-8-8 22:38
谢谢提醒。。。。。。。。。。。哈哈
作者: 徐鹏辰    时间: 2015-8-8 23:03
楼主还应该知道懒汉式在io中存在问题,应记住的改进措施,即同步




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2