黑马程序员技术交流社区

标题: 黑马程序员 饿汉式的延迟加载问题如何解决?(面试题) [打印本页]

作者: 北极雪871208    时间: 2014-3-24 13:09
标题: 黑马程序员 饿汉式的延迟加载问题如何解决?(面试题)
---------------------- <a target="blank">ASP.Net+Unity开发</a>、<a target="blank">.Net培训</a>、期待与您交流! ----------------------
求积分!零基础,刚学到这里

---------------------- <a target="blank">ASP.Net+Unity开发</a>、<a target="blank">.Net培训</a>、期待与您交流! ----------------------

作者: 上官睿鹏    时间: 2014-3-24 15:18
本帖最后由 上官睿鹏 于 2014-3-24 15:22 编辑

哪个公司面试的.....?饿汉式不会延迟加载,它是一上来就给new 一个实例
public Singleton{
    private static Singleton  instance = new Singleton();
    private Singleton(){}
     public static Singleton getInstance(){
            return instance;
     }
}他想问的应该是懒汉式延迟加载问题因为懒汉式要先判断对象是否为空,为空再创建,如果有多线程的话,还要有synchronized关键字
public Singleton{
    private static Singleton  instance = null;
    private Singleton(){}
     public static Singleton getInstance(){//
             if(instance == null)
                       instance = new Singleton();
            return instance;
     }
}

作者: 透过生活    时间: 2014-3-24 20:13
既然是饿汉式,你想一下,既然叫饿汉,还不一开始就加载呢???你觉得呢?
延迟加载的是懒汉式。
作者: 北极雪871208    时间: 2014-3-25 20:17
上官睿鹏 发表于 2014-3-24 15:18
哪个公司面试的.....?饿汉式不会延迟加载,它是一上来就给new 一个实例
public Singleton{
    private st ...

恩恩!不好意思,是我搞错了
作者: 北极雪871208    时间: 2014-3-25 20:20
透过生活 发表于 2014-3-24 20:13
既然是饿汉式,你想一下,既然叫饿汉,还不一开始就加载呢???你觉得呢?
延迟加载的是懒汉式。 ...

不好意思,是我搞错了,是懒汉式:shutup:
作者: 肖涵    时间: 2014-3-30 11:01
1.懒汉式
懒汉式的特点是实例的延迟加载,但是多线程访问时会出现安全问题,加同步时锁是该类所属的字节码文件对象
[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
class single  
{  
    private static  single s=null;  
    private single(){}  
    public static single getInstance()  
    {  
         
        if(s==null)  
        {  
            synchoronized(single.class)  
            {  
                if(s==null)  
                    s=new single();  
            }  
        }  
    return s;  
}  

2.饿汉式
[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
class single  
{  
    private static final single s=new single();  
    private single(){}  
    public static single getInstance()  
    {  
        return s;  
    }  
}  






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