package com.test;

/**
*
* @author Administrator
*我的发现:调用这个的时候,不能直接实例化了;需要=null;然后get; 这样安全些;
*然后仔细找了下单例模式的解释,发现是这样的;单例模式要线程安全,有单独且唯一的一个例子;
*所以重新了构造方法,改成了安全的private,然后加了一个例子,setget方法(set方法干掉了、),
*这里是饿汉式单例模式,在类初始化的时候就新实例化了一个唯一的实例了;
*
*注: 单例模式有以下特点:
  1、单例类只能有一个实例。
  2、单例类必须自己创建自己的唯一实例。
  3、单例类必须给所有其他对象提供这一实例。

单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例(略)。
*/
public class SingletonClass {
//饿汉式:
/*
private SingletonClass() {}

private static final SingletonClass instance = new SingletonClass();

public static SingletonClass getInstance() {
return instance;
}
*/
//懒汉式:
/*
private SingletonClass() {}

private static SingletonClass instance = null;

public static SingletonClass getInstance() {
instance = new SingletonClass();
return instance;
}
*/
//懒汉式在getInstance方法上+同步:
/*
private SingletonClass() {}

private static SingletonClass instance = null;

public static SingletonClass getInstance() {
if(instance==null){
instance = new SingletonClass();
}
return instance;
}
*/
//懒汉式+双重检查锁定
/*
private SingletonClass() {}

private static SingletonClass instance = null;

public static SingletonClass getInstance() {
if(instance==null)
synchronized (SingletonClass.class) {
if(instance==null){
instance = new SingletonClass();
}
}
return instance;
}
*/
//静态内部类
//(既实现了线程安全,又避免了同步带来的性能影响)
private static class LazyHolder {
private static final SingletonClass INSTANCE = new SingletonClass();
}

private SingletonClass() {
}

public static final SingletonClass getInstance() {
return LazyHolder.INSTANCE;
}

}

最新文章

  1. 自定义Dialog宽度占满屏幕
  2. 如何异步创建文件夹(node)
  3. Java正则表达式匹配例子
  4. android142 360 分页加载
  5. pl/sql developer连接远程数据库
  6. mysql服务器辅助选项
  7. js中的注意事项(持续整理)
  8. Palindromes _easy version
  9. CSDN Androidclient开展(两):基于如何详细解释Java使用Jsoup爬行动物HTML数据
  10. TOGAF架构开发方法(ADM)之需求管理阶段
  11. 转:jquery 父、子页面之间页面元素的获取,方法的调用
  12. reference file contains errors
  13. BZOJ 1968: [Ahoi2005]COMMON 约数研究(新生必做的水题)
  14. java接口变量问题
  15. Wireshark显示结果过滤基本语法
  16. Eclipse搭建SpringBoot之HelloWorld
  17. POI2014解题报告
  18. Puppet的搭建和应用
  19. Oracle系列(三): 情景查询一 a表中有个fid字段,逗号分隔开来,b表中有id字段及其他信息,如何关联a表的fid和和b表的id字段查询
  20. 轻量架构ShuffleNet V2:从理论复杂度到实用设计准则

热门文章

  1. Linux下执行Oracle的sql脚本
  2. msf下的各种生成payload命令
  3. TCP 基础知识
  4. BZOJ5487: [Usaco2018 Dec]Cowpatibility
  5. HDU 6088 Rikka with Rock-paper-scissors(NTT+欧拉函数)
  6. Linux服务器超简单安装Python3环境、Ipython、Jupyter、virtualenv、virtualenvwrapper教程全在这了
  7. NYOJ_1274_信道安全 -
  8. shiro框架
  9. Kafka学习之二 Kafka安装和使用
  10. 《SQL 基础教程》第四章:数据更新