什么是单例模式???

保证一个类仅有一个实例,并提供一个访问它的全局访问点

单例模式是一种常用的软件设计模式之一,其目的是保证整个应用中只存在类的唯一一个实例。

几种常见的单例模式代码实现:

饿汉式

/*** 单例模式* 饿汉式*/
public class Simple01 {//类初始化时,立即创建对象private static Simple01 s=new Simple01();private Simple01(){}//方法没有同步,调用效率高public static Simple01 getInstance(){return s;}
}

懒汉式

/*** 单例模式* 懒汉式*/
public class Simple02 {//调用时再创建private static Simple02 s;private Simple02(){}//线程同步public static synchronized Simple02 getInstance(){if(s==null){s=new Simple02();}return s;}
}

静态内部类式(线程同步,懒汉式加载)

/*** 单例模式* 静态内部类式*/
public class Singleton03 {private Singleton03(){}private static class Singletoninner{private static final Singleton03 instance=new Singleton03();}public static Singleton03 getInstance(){return Singletoninner.instance;}
}

枚举式(没有延时加载,防止反射和反序列化)

/*** 单例模式* 枚举式*/
public enum  Singleton04 {INSTANCE;//本身就是一个单例对象public void operation(){}
}

单例对象 占用资源少 不需要延时加载
枚举式 好于 饿汉式
单例对象 占用资源大 需要延时加载
静态内部类式 好于 懒汉式

什么是单例模式?常见的单例模式写法有哪些?相关推荐

  1. 单例模式的7种写法及其应用场景你都熟悉了吗,快来看看吧

    单例模式的7种写法 定义 单例模式的写法有以下7种 1. 饿汉式(静态常量) 2. 懒汉式(线程不安全) 3. 懒汉式(线程安全,同步方法) 4. 懒汉式(线程安全,同步代码块) 5. 双重检查 6. ...

  2. 单例模式的八种写法比较

    转:https://www.cnblogs.com/zhaoyan001/p/6365064.html 单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生.一般介绍单例模式的书籍 ...

  3. 【设计模式】各个击破单例模式的8种写法

    单例模式 在一个系统开发过程中,我们在基于节省内存资源.保证数据内容的一致性的考虑上,往往需要对某些类要求只能创建一个实例,即「保证类只有一个实例」的设计模式就是单例模式. 比如我们遇到过的各种Man ...

  4. Java设计模式之单例模式(七种写法)

    Java设计模式之单例模式(七种写法) 第一种,懒汉式,lazy初始化,线程不安全,多线程中无法工作: public class Singleton {private static Singleton ...

  5. 使用严格模式的坏处_再见面试官:单例模式有几种写法?

    点击上方"JAVA",星标公众号重磅干货,第一时间送达 饱汉模式 饿汉模式 Holder模式 枚举模式 丑陋但好用的语法糖 总结 " "你知道茴香豆的'茴'字有 ...

  6. Java 实现单例模式的七种写法

    单例模式(Singleton Pattern) 是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. 比如, ...

  7. 短视频系统源码,几种常见的单例模式

    短视频系统源码,几种常见的单例模式实现的相关代码 前言:直接介绍几种线程安全的且我觉得还比较不错的方式: 1. public class Singleton { private static Sing ...

  8. Java 单例模式常见五种实现方式

    定义 单例模式,属于创建类型的一种常用的软件设计模式. 单例模式最初的定义出现于<设计模式>(艾迪生维斯理, 1994):"保证一个类仅有一个实例,并提供一个访问它的全局访问点. ...

  9. java单例模式_Java 实现单例模式的 9 种方法

    Linux编程点击右侧关注,免费入门到精通! 作者丨java团长 一. 什么是单例模式 因进程需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计. 二. 单 ...

最新文章

  1. mysql 存储过程声明式游标_Mysql 存储过程中使用游标循环读取临时表
  2. 记一次FastJSON和Jackson解析json时遇到的中括号问题
  3. SET IDENTITY_INSERT [Table] [ON|OFF]
  4. python读取扫描形成的pdf_Python利用PyPDF2库获取PDF文件总页码实例
  5. [转]Java输入输出流的使用详细介绍
  6. 2018.12.11——全局变量与局部变量
  7. 深挖基于 CSS 的变换与动画技术
  8. 软件技术架构:通过限流与熔断,打造一个“靠谱”的系统
  9. 微信小程序远程git代码管理
  10. java游戏编程源代码_JAVA小游戏编程-源代码
  11. tomcat是干什么的
  12. 神秘消失的Windows 9,如今真被人做出来了
  13. vue 中click.stop的用法
  14. Ubuntu安装后初次配置
  15. 都2022年了相册分类还如此不准?不如试试亲影
  16. 东软睿驰 adas车载测试
  17. CF 71A [字符串统计]
  18. 单选框与复选框数据回填
  19. activity或者flowable会签任务的事例
  20. hdbinterface是什么_Android 手机插入电脑后提示“”ADB Interface安装失败的问题

热门文章

  1. 自建家庭服务器,我的家庭服务器搭建之旅(一)
  2. 【Java】快速集成微信支付和支付宝支付
  3. Unity接入GooglePlay服务
  4. 内网环境安装python所需的模块
  5. 自动Emergency Responder
  6. 降噪耳机哪款好?口碑最好的降噪蓝牙耳机推荐
  7. HALCON【缺陷检测】
  8. 计算机显示时间怎么设置在哪里设置方法,电脑不显示日期和时间怎么设置不了怎么办...
  9. JavaScript简单的Tab栏导航——切换页面
  10. 伪分布式集群搭建(hadoop)