`
杨振华
  • 浏览: 9164 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java单例模式

    博客分类:
  • java
阅读更多
//懒汉式单例类.在第一次调用的时候实例化
public class Singleton2 {
    //私有的默认构造子
    private Singleton2() {}
    //注意,这里没有final   
    private static Singleton2 single=null;
    //静态工厂方法
    public synchronized  static Singleton2 getInstance() {
         if (single == null) { 
             single = new Singleton2();
         } 
        return single;
    }
}

//饿汉式单例类.在类初始化时,已经自行实例化
public class Singleton1 {
    //私有的默认构造子
    private Singleton1() {}
    //已经自行实例化
    private static final Singleton1 single = new Singleton1();
    //静态工厂方法
    public static Singleton1 getInstance() {
        return single;
    }
}
Singleton通过将构造方法限定为private避免了类在外部被实例化,在同一个虚拟机范围内,Singleton的唯一实例只能通过getInstance()方法访问。
通过Java反射机制是能够实例化构造方法为private的类的,那基本上会使所有的Java单例实现失效。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics