知识点:

  1. 进程与线程
  2. volatile关键字:在我们的多线程开发中,我们用Volatile关键字来限定某个变量或者属性时,线程在每次使用变量的时候,都会读取变量修改后的最新的值,即Volatile关键字保证了变量的可见性;https://blog.csdn.net/kris1025/article/details/80008885

  3. java语法中有一个函数能够确保只调用一次,静态构造函数

  4. synchronized(XXX.class)会阻塞后面返回相同class的synchronized(XXX.class)代码

  5. 静态字段通过类来访问,最好不要通过实例

  6. 内部类就相当于一个外部类的成员变量,所以可以直接访问外部变量,外部类不能直接访问内部类变量,必须通过创建内部类实例的方法访问

代码实现:

  • 同步锁+两次判断:可以解决多线程问题,缺点是代码较复杂
class A {//定义静态变量,用于存储唯一的对象private static volatile A instance = null;//定义静态构造方法private A() {}//定义一个public方法,让其调用静态构造方法产生对象public static A getInstance() {if (instance == null) {//加锁,一个一个执行synchronized (A.class) {if (instance == null)instance = new A();}}return instance;}
}
  • 初始化实例对象,可以解决多线程问题,代码简洁,缺点是调用B类,就会创建对象,内存使用率不高
class B{//初始化对象private static B uniqueinstance = new B();//定义静态构造方法private B() {}//定义一个public方法,让其调用静态构造方法产生对象public static B getInstance() {return uniqueinstance;}
}
  • 静态内部类,在上个方法的基础上解决了内存使用率使用不高的缺点
class D  {private D(){}//定义一个公共方法,通过调用内部类来访问属性public static D getInstance() {return DInner.uniqueinstance;}//定义一个静态内部类,类中将对象存为属性private static class DInner{private static final D uniqueinstance = new D(); }}

剑指offer——2.实现Singleton模式相关推荐

  1. 剑指offer (02):实现 Singleton 单例模式 (Python 实现详解)

    本文大部分内容来自于Python中的单例模式的几种实现方式的及优化 ,在此基础上进行修改,整理. 1 题目 单例模式(Singleton Pattern)是一种常用的软件设计模式.在它的核心结构中只包 ...

  2. 【剑指Offer学习】【全部面试题汇总】

    剑指Offer学习 剑指Offer这本书已经学习完了.从中也学习到了不少的东西,如今做一个总的文件夹.供自已和大家一起參考.学如逆水行舟.不进则退.仅仅有不断地学习才干跟上时候.跟得上技术的潮流! 全 ...

  3. 【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题

    各位程序猿: <剑指Offer> 一书源自该书作者何海涛坚持更新与编写的博客( http://zhedahht.blog.163.com/ ),该博客收集整理了大量如微软.Google等知 ...

  4. GitHub#algorithm#:《剑指offer》 的50道面试题

    Copyright(C) nonstriater:https://github.com/nonstriater/Learn-Algorithms <剑指offer> 这本书给出了50到面试 ...

  5. 剑指offer 答案 python_【剑指offer】【python】面试题2~5

    使用python实现<剑指offer>面试题ヾ(◍°∇°◍)ノ゙,以此记录. 2_实现Singleton模式 题目:实现单例模式 单例模式,是一种常用的软件设计模式.在它的核心结构中只包含 ...

  6. 剑指offer最新版_剑指Offer——Java版本(持续更新)

    0 前言 邻近校招,算法要命!!! 本文为研究剑指Offer过程中的笔记,整理出主要思路以及Java版本题解,以便记忆和复习. 参考整理来自<剑指Offer 第二版>. 特别注意,对每道题 ...

  7. java剑指offer_剑指offer题目java实现

    Problem2:实现Singleton模式 题目描述:设计一个类,我们只能生成该类的一个实例 1 packageProblem2;2 3 public classSingletonClass {4 ...

  8. 剑指 offer 题目分析及答案

    1. 前言 2. 实现 Singleton 3. 数组中重复的数字 4. 二维数组中的查找 5. 替换空格 6. 从尾到头打印链表 7. 重建二叉树 8. 二叉树的下一个结点 9. 用两个栈实现队列 ...

  9. 何海涛——《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题

    <剑指Offer> 一书源自该书作者何海涛坚持更新与编写的博客( http://zhedahht.blog.163.com/ ),该博客收集整理了大量如微软.Google等知名IT企业的经 ...

最新文章

  1. 读书笔记 | 墨菲定律
  2. ios java aes128_iOS AES128加密解密的两种模式(CBC和ECB)
  3. 成功解决raise XGBoostError(_LIB.XGBGetLastError()) xgboost.core.XGBoostError: b'[22:08:00] C:\\Users\\Ad
  4. UDP socket 设置为的非阻塞模式
  5. CentOS 编译安装python3.6
  6. python怎么设计奥运五环_python 相关语法 图形绘制 奥运五环
  7. ASP.NET MVC传递Model到视图的多种方式之通用方式的使用
  8. LinQ Group By
  9. mysql删除索引_MySQL 索引详解
  10. vs vb连接mysql,用vs2010的vb.net建立和access数据库的连接后的奇怪问题:关于本地复制...
  11. 正确划分音节——英语见字发音的秘诀
  12. 苹果电脑重置登录密码
  13. 为什么说jsp被替代了_您说什么:最喜欢的Windows资源管理器替代品
  14. Java中资源文件获取源码浅析
  15. 牛客网刷题笔记-SQL 25 获取员工其当前的薪水比其manager当前薪水还高的相关信息
  16. 微信小程序--图片懒加载
  17. java map替换_在java的Map集合中,怎样更改value的值
  18. Ae:摄像机设置与摄像机选项
  19. cesium解决DeveloperError报错‘Expected longitude to be typeof number, actual type of was string‘
  20. 阿里正式启动2021届春季校招!java算法工程师,看完跪了

热门文章

  1. Device Tree Usage(转)https://elinux.org/Device_Tree_Usage
  2. python学习(10)字典学习,写一个三级菜单程序
  3. Power Query获取整理多来源数据
  4. spring-test测试demo
  5. celery 实例进阶
  6. CodeForces 230A
  7. python绘制k线图(蜡烛图)报错 No module named 'matplotlib.finance
  8. 阿里天池_优秀策略答辩PPT和相关博客
  9. IDEA导入Eclipse项目的方法步骤(图文教程)
  10. jsf ajax循环调用,每次JSF ajax回发后执行JavaScript