public class LazyNotSecurtySingleton {
/**
 * 此时静态变量不能声明为final,因为需要在工厂方法中对它进行实例化
 */
private static LazyNotSecurtySingleton instance;
/**
 * 私有构造子,确保无法在类外实例化该类
 */
private LazyNotSecurtySingleton() {
}
/**
 * 这里可能会有线程同步问题
 */
public static  LazyNotSecurtySingleton getInstance() {
if (instance == null) {
instance = new LazyNotSecurtySingleton();
}
return instance;
}
}

解决方案 »

  1.   

    懒汉式:当引用到的时候,instance再做初始化
    饿汉式:instance在类装载时就实例化第二种(懒汉 线程安全)public class LazySecurtySingleton {
    /**
     * 此时静态变量不能声明为final,因为需要在工厂方法中对它进行实例化
     */
    private static LazySecurtySingleton instance;
    /**
     * 私有构造子,确保无法在类外实例化该类
     */
    private LazySecurtySingleton() {
    }
    /**
     * synchronized关键字解决多个线程的同步问题
     */
    public static synchronized LazySecurtySingleton getInstance() {
    if (instance == null) {
    instance = new LazySecurtySingleton();
    }
    return instance;
    }
    }第三种(饿汉式)
    //只要Singleton类被装载了,那么instance就会被实例化(没有达到lazy loading效果)
    public class EagerSingleton {
    /** 通过静态变量初始化的类实例 */
    private static final EagerSingleton instance = new EagerSingleton();
    /**
     * 私有的默认构造子
     */
    private EagerSingleton() {
    }
    /**
     * 获取唯一类实例的静态工厂方法
     */
    public static EagerSingleton getInstance() {
    return instance;
    }
    }第四种(饿汉,变种)
    //只要Singleton类被装载了,那么instance就会被实例化(没有达到lazy loading效果)
    public class EagerNotNormalSingleton {
    private static EagerNotNormalSingleton instance = null;
    static {
    instance = new EagerNotNormalSingleton();
    }
    private EagerNotNormalSingleton() {
    }
    public static EagerNotNormalSingleton getInstance() {
    return instance;
    }
    }
      

  2.   

    你这个能去系统学一下吗?
    参考下:http://blog.csdn.net/withiter/article/details/8140338
      

  3.   

    CSDN好人真多,你们都是工作了的吗
      

  4.   

    这个必须的,顺便问下怎么赚取CSDN下载东西的积分,每次找东西很多CSDN都有,就是要积分- -
      

  5.   

    还有个问题,为什么不把
    [code=java][/    public final synchronized Connection getConnection(String connectionName) {
            .......省略    }]
    这个方法声明为static的,这样就不用new对象了