为什么s1=s2?

来源:2-1 单例模式的饿汉式实现

古城老巷

2018-03-08 15:51

怎么创建的是同一个一个对象?

写回答 关注

2回答

  • HungerCheung
    2018-07-20 11:10:19

    您需要理解以下两段代码的区别:

    //代码1
    Singleton s1 = new Singleton();
    Singleton s2 = new Singleton();
    //代码2
    Singleton s1 = Singleton.instance;
    Singleton s2 = Singleton.instance;

    在代码1中,在没有实现“单例模式”的情况下,是实实在在的分别创建了两个对象s1和s2。所有这里的s1和s2肯定是不同的。

    而已经实现了“单例模式”之后,唯一的对象instance在Singleton类中已经创建。在代码2中,没有创建任何新的对象,s1和s2都只是引用了Singleton中的instance而已。所有这里的s1和s2肯定是相同的。

    希望我的回答能给你帮助。如果您还有任何疑惑,可以私信我。

    望采纳,谢谢您。

  • 123611
    2018-03-09 15:12:21

    static     这个关键字

模式的秘密---单例模式

单例模式是在Java中最重要模式之一,让我们揭开单例模式神秘面纱

74402 学习 · 108 问题

查看课程

相似问题