项目中用到的jdbc连接 单例模式

时间:2014-04-28 16:24:35
【文件属性】:

文件名称:项目中用到的jdbc连接 单例模式

文件大小:4KB

文件格式:JAVA

更新时间:2014-04-28 16:24:35

Java jdbc连接 单例模式

/** * JDBCConnection for Singleton * 双重检查加锁方法,由于JVM内部的问题,该方法还是有漏洞的。 * 假设线程1进入到步骤2,执行步骤3未完成,会先将instance设为非null值。 * 这时候线程2会在判断instance==null的时候失败,返回一个不完整的intance对象。 * * 尝试最佳实现方法。在该方法中,Singleton有一个private类型静态内部类, * 内部类在外部类加载的时候并不会加载,只有在调用getInstance方法的时候加载SingletonHolder类。 * 分析: * 类载入到jvm的时候,会进行初始化,但是只会初始化static成员和static代码块, * 而不会初始化静态内部类的成员。因此,只有实际调用getInstance的时候, * 才会初始化静态内部类的静态成员。做到了延迟加载。 * 同时,jvm的类加载机制保证了绝对不会出现同步问题,避免了双检查锁。 * 优点:延迟加载,而且不需要同步。 * @author Zephyr.Qiao * */


网友评论

  • 有用的 有帮助
  • 挺详细的,很好的