请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,关于饿汉式的问题

看了静态内部类实现单例模式,我觉得饿汉式单例模式不能叫做饿汉式,应该还是懒汉式。
理由如下:
静态内部类InnerClass在使用时,内部类InnerClass才初始化对象,所以叫懒汉式
但是,饿汉式的实现方式同样是在使用类HungrySingleton时,才初始化对象,为啥还叫饿汉式,不叫懒汉式呢?
代码如下:
静态内部类-基于类初始化的延迟加载解决方案

public class StaticInnerClassSingleton {
    private StaticInnerClassSingleton(){

    }
    public static class InnerClass{
        private static StaticInnerClassSingleton staticInnerClassSingleton=
                new StaticInnerClassSingleton();
    }
   public static StaticInnerClassSingleton getInstance(){
        return InnerClass.staticInnerClassSingleton;
   }
}

饿汉式

public class HungrySingleton {
    private static final HungrySingleton hungrySingleton=
            new HungrySingleton();
    public static HungrySingleton getInstance(){
        return hungrySingleton;
    }
}

正在回答 回答被采纳积分+3

1回答

geelylucky 2024-05-10 00:28:14

同学你好,饿汉的意思是单例对象创建好后,不会立即使用(可能,不绝对),需要等待后续需要的时候才被使用,一直被饿着;懒汉的意思是不用的时候就不创建,一旦要创建这个对象,那么一定是要用的时候;

在使用HungrySingleton类时创建单例对象,有可能是调用HungrySingleton类的其他方法,单例对象被创建出来只是在触发静态对象的一个副作用;

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信