Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。

一般Singleton模式通常有几种种形式:

第一种形式: 

定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。

public class Singleton {

private Singleton(){}

      //在自己内部定义自己一个实例,是不是很奇怪?
   //注意这是private 只供内部调用
   private static Singleton instance = new Singleton();
   //这里提供了一个供外部访问本class的静态方法,可以直接访问  
   public static Singleton getInstance() {
     return instance;   
   }
}

 第二种形式: 

public class Singleton {
  private static Singleton instance = null;
  public static synchronized Singleton getInstance() {
  //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次     
  //使用时生成实例,提高了效率!
  if (instance==null)
    instance=new Singleton();
return instance;   }
}

其他形式:

定义一个类,它的构造函数为private的,所有方法为static的。
一般认为第一种形式要更加安全些

这是上海尚学堂Java培训学员面试遇到的一个题目,供大家参考,上海尚学堂根据大量的学员面试时的面试题整理出一整套完整的《Java面试学习技巧大全》,欢迎来上海尚学堂领取。

最新文章

  1. 在职场中混,"讲演稿"的重要性
  2. AMD and CMD are dead之KMDjs内核之依赖分析
  3. filter-自己的理解
  4. IntelliJ IDEA常用快捷键windows
  5. 保存配置文件的appSetting
  6. MySQL5.7(5.6)GTID环境下恢复从库思(qi)路(yin)方(ji)法(qiao)
  7. codevs1137 计算系数
  8. iOS开发 差间距滚动
  9. AIM Tech Round (Div. 2) C. Graph and String 二分图染色
  10. standing
  11. #include <set>
  12. Spark 基本概念
  13. 用JavaScript实现动态省市县三级联动
  14. webpack 代码优化压缩方法
  15. Yii2 Gridview查询关联筛选
  16. [UE4]Replications,复制
  17. refused to Connection
  18. 使用python及工具包进行简单的验证码识别
  19. 【BZOJ1089】[SCOI2003]严格n元树(高精度,动态规划)
  20. discuz的css处理机制

热门文章

  1. MapReduce流量统计
  2. 终极版:Mybatis整合Spring配置
  3. 金山WPS一面
  4. C# DataConstruct 数据结构关于 Array,ArrayList,List,HashTable,Dictionnary的学习记录
  5. vue原理20181211
  6. haproxy代理配置段参数设定
  7. 迁移hive,不同集群。
  8. pycharm的list中append的应用
  9. 基于Cmake+QT+VS的C++项目构建开发编译简明教程
  10. Objective-C中整数与字符串的相互转换