s本来就是静态的啊, 你在 private static Single s = new Single(); 的时候, 就等于把new出的Single() 赋给了s;
而new出的Single()是存在于堆内存之中, 为引用;
单例设计模式 就是为了保证在程序中的某个类只存在一个对象, 所以把构造函数私有了, 但是这个类又不能创建对象, 就在这个类的内部自己创建一个对象并用成员变量记住它,也正因为这个类不能创建对象, 此成员变量需要是静态的, 还能让类加载的时候创建唯一的对象, 为了提高了安全性,外界也无法修改的同时要把成员变量也私有化, 提供一个公有的方法用来获取唯一的对象, 由于需要在不创建对象的情况下使用, 所以也要静态;
|