黑马程序员技术交流社区

标题: 关于懒汉式的问题 [打印本页]

作者: 小黑子    时间: 2014-8-7 07:24
标题: 关于懒汉式的问题
class Single
{
    private Single(){}
    private static Single s = null;
    public static Single getInstance()
    {
        if(s == null)
             s == new Single();
        return s;
    }
}
///////////////////////////////////////////////////////////
对象是方法被调用时才初始化,也叫对象的延时加载,称为:懒汉式
、、、、、、、、、、、、、、、、、、、、、、、、、
我不明白, Single s = null; 和 Single getInstance()都是静态的,
内存中明明已经存在了,执行到if(s == null) 时,s确实等于null,应该建立对象呀!
为什么还要等到被调用时才初始化????


作者: 草鱼狂飙    时间: 2014-8-7 07:51
在创建实例方法getInstance()被调用时, Single()才初始化;
在实际应用中声明时 Single(),s是null;
只有调用创建实例方法getInstance()时,if(s == null) 才会执行,只声明 Single()是不调用if(s == null) 和下面语句的。



作者: 阿磊    时间: 2014-8-7 08:52
楼上正解




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