采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
public class Singleton { private static Singleton singleton = new Singleton(); private Singleton() {} public static Singleton getSingleton() { return singleton; } }
这种方式为什么不是懒加载呢?不是只有访问到getSingleton这个static的方法时,才初始化吗?
类的初始化情况有:
private static Singleton singleton = new Singleton();
在这一句当中singleton是作为一个静态成员变量的,一个静态成员变量当且仅当类初次被加载当时候完成初始化。所以在加载类Singleton的时候就已经完成了它的初始化,而不是调用getSingleton()才完成初始化。因此这是饿汉式。
首先,感谢你的回答。 在饿汉式那一节,给力老师指出了只有用final关键字修饰,才会保证在类加载的时候去初始化单例。并且我也在问题中列出了初始化的时机。所以我认为这个还是一个懒汉式。 那么,用内部类的好处在哪里呢?
登录后可查看更多问答,登录/注册
系统学习设计原则,设计模式,锤炼编码内功,赢取高薪Offer
2.9k 2
1.3k 11
1.4k 8
1.2k 6
1.3k 6