解决方案 »

  1.   

    单例参考 java单例模式 
      

  2.   

    恶汉试class Single{
    private static final Single instance =new Single();
    private Single(){};
    public Single getInstance(){
    return instance;
    }
    }
    懒汉式
    [code=java]
    class Single{
    private static  Single instance;
    private Single(){};
    public Single getInstance(){
    if(instance==null)
    synchronized (Single.class) {
    if(instance==null)
    instance=new Single();
    }
    return instance;
    }
    }还有一种经典写法:class Single{

    private Single(){};
    private static class Factory{
    private static final Single instance=new Single();
    }
    public Single getInstance(){
    return Factory.instance;
    }
    }
      

  3.   

    简单点写就按照第二种写法,是线程安全。 如果非要采用懒汉模式,注意要配合volatile关键字才行。还有就是5楼的第二种方法。
      

  4.   

    这两种都是单例模式,第一种是懒汉式(也称饱汉式),第二种是饿汉式。
    懒汉式存在线程安全问题,一般会用synchronized关键字修饰获得对象的方法。
    饿汉式不存在线程安全问题。
    可以看看这:http://blog.csdn.net/gy40235/article/details/25203909
      

  5.   

    考虑到各种因素,最好是用double check。
    在多线程环境下也是安全的。
    其实最重要的一点是类要加修饰符final 因为单例不能被继承。
    即使构造函数私有化还是能被继承的~~