单例模式可以算是最常用的设计模式之一,有饿汉模式、懒汉模式。下面的代码应该算是最好的懒汉模式了, 用时加载,并且线程安全。

public class Singleton {private Singleton() {}/*** 获取单例** @return*/public static Singleton getInstance() {return SingletonHolder.intstance;}/*** 一个私有的静态内部类,用于初始化一个静态final实例*/private static class SingletonHolder {private static final Singleton intstance = new Singleton();}
}
复制代码

静态内部类只有在用时才会被加载。

转载于:https://juejin.im/post/5c8752f46fb9a049ec6bea5e

可能是最好的单例模式相关推荐

  1. Java单例模式个人总结(实例变量和类变量)

    Java单例模式 背景知识:Static关键字. 在对于定义类的变量,分为两种,是否具有static修饰的变量: 没有static修饰的变量,通过类的实例化(对象)引用,改变量称为实例变量: 使用st ...

  2. GOF23设计模式(创建型模式)单例模式

    目录: 一:单例模式的核心作用.常见应用场景 二:五种单例模式及其实现 三:关于反射和反序列化破解单例模式的漏洞,以及相应的解决方案 四:测试五种单例模式的效率 一:核心作用及常见应用场景: 核心作用 ...

  3. Java设计模式:单例模式

    学而时习,稳固而之心, 好久没有复习java的知识了,今天有空温习了单例模式,这里记录一下 单例模式是常见的设计模式的一种,其特点就是 指一个类只有一个实例,且该类能自行创建这个实例  , 保证一个类 ...

  4. [Python设计模式] 第21章 计划生育——单例模式

    github地址:https://github.com/cheesezh/python_design_patterns 单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式 ...

  5. Python 精选笔试面试习题—sorted 与 sort 单例模式、统计字符个数Count、垃圾回收、lambda函数、静态方法、类方法、实例方法、分布式锁、

    1. 字典根据键从小到大排序? In[38]: dic = {"name": "Tom", "age": 30, "country ...

  6. 单例模式的两种实现方式对比:DCL (double check idiom)双重检查 和 lazy initialization holder class(静态内部类)...

    首先这两种方式都是延迟初始化机制,就是当要用到的时候再去初始化. 但是Effective Java书中说过:除非绝对必要,否则就不要这么做. 1. DCL (double checked lockin ...

  7. 基础设计模式:单例模式+工厂模式+注册树模式

    单例模式: 通过提供自身共享实例的访问,单例设计模式用于限制特定对象只能被创建一次. 使用场景: 一般数据库实例都会用单例模式 实现: 单例设计模式就是要一个类只能实例化一个对象. 要想让一个类只能实 ...

  8. 设计模式——单例模式(Singleton)

    保证一个类仅有一个实例,并提供一个访问它的全局访问点.--DP UML类图 模式说明 个人认为单例模式是所有设计模式中最为简单的一个模式,因为实现这个模式仅需一个类,而不像其他模式需要若干个类.这个模 ...

  9. 设计模式 之美 -- 单例模式

    为什么要使用单例? 一个类只允许创建一个对象或者实例. 背景简介:使用多线程并发访问同一个类,为了保证类的线程安全,可以有两种方法: 将该类定义为单例模式,即该类仅允许创建一个实例 为该类的成员函数添 ...

  10. 【C++】C/C++ 中的单例模式

    目录 part 0:单例模式3种经典的实现方式 Meyer's Singleton Meyers Singleton版本二 Lazy Singleton Eager Singleton Testing ...

最新文章

  1. 实验二 164 张增进
  2. 【c语言】蓝桥杯算法训练 最大值与最小值的计算
  3. 使用Kryo的序列化方式提升Netty性能
  4. poj 1379 模拟退火法
  5. truncate数据后回收空间_Truncate用法详解
  6. 传统的线性降维方法效果不佳。_高压断路器机械故障诊断与定位的新思路:KPCA-SoftMax诊断方法...
  7. HTML里的表格不能复制粘贴,表格之间无法复制粘贴怎么办_两个EXCEL表格为什么不能复制和粘贴-win7之家...
  8. 深层神经网络难以训练的原因
  9. Ruby on Rails开发Web应用的基本概念
  10. (转)【自动语音识别课程】
  11. BAT等大厂十年研发经历,总结了12开发条经验(墙裂推荐)
  12. 关于Linux基本命令
  13. Sniffer的使用
  14. java虚无世界_我的世界虚无世界2.5
  15. n张图像合成一个长图
  16. USB扫码枪无焦点输入到指定页面、指定文件框中
  17. BERT微调做中文文本分类
  18. 如何修改:wq!无效时linux的readonly 标记的文档-修改liunx下mysql的慢日志查询开关。
  19. wow达拉然发礼物机器人_魔兽世界43种经典变身道具获取方法
  20. 教PS菜鸟制作动态流光字

热门文章

  1. mysql c接口返回自增id_详解mysql插入数据后返回自增ID的七种方法
  2. Java基础03 字符串连接符+
  3. 自动化测试常用python库_Python自动化测试常用库
  4. css样式有行内式还有什么,在行内式CSS样式中,属性和值的书写规范与CSS样式规则不相同...
  5. 经典解释监视器和对象锁
  6. 大数据学习笔记:距离度量和相似度度量
  7. 2018 ACM/ICPC 南京站小结
  8. 【codevs2370】小机房的树,RMQ求LCA
  9. 17.立体匹配——动态规划公式(Dynamic Programming Formulation),二维网格上的相干立体_4
  10. 复数基础——例题_4