`
nightbin0420
  • 浏览: 8458 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

单例模式的两种实现方式及区别

阅读更多

 1:类加载时进行对象的实例化:

public class SingletonA {
 

 //SingletonA的唯一实例
 private static SingletonA instance = new SingletonA();
 
 //将构造函数私有,防止外界构造SingletonA实例
 private SingletonA() {
 }
 /**
  * 获取SingletonA的实例
  */
 public static SingletonA getInstance() {
  return instance;
 }

}

2:第一次访问时进行对象的实例化

public class SingletonB {
 

 //SingletonB的唯一实例
 private static SingletonB instance = null;
 
 //将构造函数私有,防止外界构造SingletonB实例
 private SingletonB() {
 }
 //获取SingletonB的唯一实例,用synchronized关键字保证某一时刻只有一个线程调用此方法。
 public static synchronized SingletonB getInstance() {
  //如果instance为空,便创建一个新的SingletonB实例,否则,返回已有的实例
  if (instance == null) {
   instance = new SingletonB();
  }
  return instance;
 }

}

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jun_yuner/archive/2007/12/10/1927621.aspx
 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics