什么是单例模式?常见的单例模式写法有哪些?
什么是单例模式???
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
单例模式是一种常用的软件设计模式之一,其目的是保证整个应用中只存在类的唯一一个实例。
几种常见的单例模式代码实现:
饿汉式:
/*** 单例模式* 饿汉式*/
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(){}
}
单例对象 占用资源少 不需要延时加载
枚举式 好于 饿汉式
单例对象 占用资源大 需要延时加载
静态内部类式 好于 懒汉式
什么是单例模式?常见的单例模式写法有哪些?相关推荐
- 单例模式的7种写法及其应用场景你都熟悉了吗,快来看看吧
单例模式的7种写法 定义 单例模式的写法有以下7种 1. 饿汉式(静态常量) 2. 懒汉式(线程不安全) 3. 懒汉式(线程安全,同步方法) 4. 懒汉式(线程安全,同步代码块) 5. 双重检查 6. ...
- 单例模式的八种写法比较
转:https://www.cnblogs.com/zhaoyan001/p/6365064.html 单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生.一般介绍单例模式的书籍 ...
- 【设计模式】各个击破单例模式的8种写法
单例模式 在一个系统开发过程中,我们在基于节省内存资源.保证数据内容的一致性的考虑上,往往需要对某些类要求只能创建一个实例,即「保证类只有一个实例」的设计模式就是单例模式. 比如我们遇到过的各种Man ...
- Java设计模式之单例模式(七种写法)
Java设计模式之单例模式(七种写法) 第一种,懒汉式,lazy初始化,线程不安全,多线程中无法工作: public class Singleton {private static Singleton ...
- 使用严格模式的坏处_再见面试官:单例模式有几种写法?
点击上方"JAVA",星标公众号重磅干货,第一时间送达 饱汉模式 饿汉模式 Holder模式 枚举模式 丑陋但好用的语法糖 总结 " "你知道茴香豆的'茴'字有 ...
- Java 实现单例模式的七种写法
单例模式(Singleton Pattern) 是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. 比如, ...
- 短视频系统源码,几种常见的单例模式
短视频系统源码,几种常见的单例模式实现的相关代码 前言:直接介绍几种线程安全的且我觉得还比较不错的方式: 1. public class Singleton { private static Sing ...
- Java 单例模式常见五种实现方式
定义 单例模式,属于创建类型的一种常用的软件设计模式. 单例模式最初的定义出现于<设计模式>(艾迪生维斯理, 1994):"保证一个类仅有一个实例,并提供一个访问它的全局访问点. ...
- java单例模式_Java 实现单例模式的 9 种方法
Linux编程点击右侧关注,免费入门到精通! 作者丨java团长 一. 什么是单例模式 因进程需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计. 二. 单 ...
最新文章
- mysql 存储过程声明式游标_Mysql 存储过程中使用游标循环读取临时表
- 记一次FastJSON和Jackson解析json时遇到的中括号问题
- SET IDENTITY_INSERT [Table] [ON|OFF]
- python读取扫描形成的pdf_Python利用PyPDF2库获取PDF文件总页码实例
- [转]Java输入输出流的使用详细介绍
- 2018.12.11——全局变量与局部变量
- 深挖基于 CSS 的变换与动画技术
- 软件技术架构:通过限流与熔断,打造一个“靠谱”的系统
- 微信小程序远程git代码管理
- java游戏编程源代码_JAVA小游戏编程-源代码
- tomcat是干什么的
- 神秘消失的Windows 9,如今真被人做出来了
- vue 中click.stop的用法
- Ubuntu安装后初次配置
- 都2022年了相册分类还如此不准?不如试试亲影
- 东软睿驰 adas车载测试
- CF 71A [字符串统计]
- 单选框与复选框数据回填
- activity或者flowable会签任务的事例
- hdbinterface是什么_Android 手机插入电脑后提示“”ADB Interface安装失败的问题