java单例对象_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java单例对象

java单例对象

 2013/10/13 9:24:37  jzg_de  程序员俱乐部  我要评论(0)
  • 摘要:转http://www.cnblogs.com/coffee/archive/2011/12/05/inside-java-singleton.html1、如果单例对象不大,允许非懒加载,可以使用方法三。方法三/***预先初始化static变量的单例模式非Lazy线程安全*优点:*1、线程安全*缺点:*1、非懒加载,如果构造的单例很大,构造完又迟迟不使用,会导致资源浪费。**@authorlaichendong*@since2011-12-5*/publicclassSingletonFour
  • 标签:
转http://www.cnblogs.com/coffee/archive/2011/12/05/inside-java-singleton.html
1、如果单例对象不大,允许非懒加载,可以使用方法三。
方法三
/**
* 预先初始化static变量 的单例模式  非Lazy  线程安全
* 优点:
* 1、线程安全
* 缺点:
* 1、非懒加载,如果构造的单例很大,构造完又迟迟不使用,会导致资源浪费。
*
* @author laichendong
* @since 2011-12-5
*/
public class SingletonFour {
   
    /** 单例变量 ,static的,在类加载时进行初始化一次,保证线程安全 */
    private static SingletonFour instance = new SingletonFour();
   
    /**
     * 私有化的构造方法,保证外部的类不能通过构造器来实例化。
     */
    private SingletonFour() {
       
    }
   
    /**
     * 获取单例对象实例
     *
     * @return 单例对象
     */
    public static SingletonFour getInstance() {
        return instance;
    }
   
}


如果需要懒加载,推荐使用方法四。

方法四:使用内部类。

/**
* 基于内部类的单例模式  Lazy  线程安全
* 优点:
* 1、线程安全
* 2、lazy
* 缺点:
* 1、待发现
*
* @author laichendong
* @since 2011-12-5
*/
public class SingletonFive {
   
    /**
     * 内部类,用于实现lzay机制
*/
    private static class SingletonHolder{
        /** 单例变量  */
        private static SingletonFive instance = new SingletonFive();
    }
   
    /**
     * 私有化的构造方法,保证外部的类不能通过构造器来实例化。
*/
    private SingletonFive() {
       
    }
   
    /**
     * 获取单例对象实例
     *
     * @return 单例对象
*/
    public static SingletonFive getInstance() {
        return SingletonHolder.instance;
    }
   
}
  • 相关文章
发表评论
用户名: 匿名