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

© 小黑子 中级黑马   /  2014-8-7 07:24  /  1003 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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,应该建立对象呀!
为什么还要等到被调用时才初始化????

2 个回复

倒序浏览
在创建实例方法getInstance()被调用时, Single()才初始化;
在实际应用中声明时 Single(),s是null;
只有调用创建实例方法getInstance()时,if(s == null) 才会执行,只声明 Single()是不调用if(s == null) 和下面语句的。


回复 使用道具 举报
楼上正解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马