public class Singleton {
    private static Singleton single = new Singleton();    private Singleton() {
    }    public Singleton getInstance() {
        return single;
    }
}
请说明下这样写有什么用?
如果多个用户共享这一个Singleton的实例,一个用户未关闭,另个用户是否也能获得到Singleton的实例?

解决方案 »

  1.   

    变量设置为静态的话, 直接保存在内存中, 在加载类的时候
     只加载一次, 所有的实例均使用这个
    public class Singleton {
        private static Singleton single = null;    private Singleton() {
        }    public synchronized Singleton getInstance() {
            if (null == single) {
                single = new Single();
            }
            return single;
        }
    }这样要好些哈, 如果不考虑到线程问题的话, 可以把synchronized去掉
      

  2.   


    厉害,如此资深问题被你看出来了!
    楼上同志,请对实例方法增加static修饰
      

  3.   


    public static synchronized Singleton getInstance() {
    if (null == single) {
    single = new Single();
    }
    return single;
    }
    }这下应该可以了
      

  4.   

    这就是著名的Singleton设计模式。
    Singleton设计模式的意图:让某个类在全局范围内只有一个实例。
    ==================================================================
    如果多个用户共享这一个Singleton的实例,一个用户未关闭,另个用户是否也能获得到Singleton的实例?
    答:另一个用户也随时能获得到Singleton的实例。
      

  5.   

    1,单例模式   顾名思义  肯定是用在只允许产生一个实例的时候,大多是出于系统资源开销考虑。比如说数据库连接。2,一个用户未关闭,另个用户当然也能获得到Singleton的实例    不过不明白你说的未关闭具体指什么。