Java设计模式之单例模式
2023-09-14 09:04:17 时间
推荐资源站:https://zhimalier.com/
单例模式常用两种写法:懒汉式单例、饿汉式单例
单例模式特点:
只能有一个实例
定义一个私有的、静态的本身的对象
创建一个共有的获取这个对象的方法
总之,选择单例模式是为了避免不一致的状态
一、懒汉式单例
在第一次调用的时候实例化自己
public class Lazy {
//1、 构造方法私有化
private Lazy(){}
//2、创建一个私有的静态对象
private static Lazy instance=null;
//3、共有的获取这个对象的方法 , static
public static Lazy getInstance(){
if( instance == null){
instance = new Lazy();
}
return instance;
}
}
Lazy通过将构造方法限定为private避免了类在外部被实例化,在同一个虚拟机范围内,Lazy的唯一实例只能通过getInstance()方法访问。但线程不安全
二、饿汉式单例
public class Lazy {
//1、 构造方法私有化
private Lazy(){}
//2、创建一个私有的静态对象
private static Lazy instance=new Lazy();
//3、共有的获取这个对象的方法 , static
public static Lazy getInstance(){
return instance;
}
}
饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以天生是线程安全的。
三、饿汉式和懒汉式区别
饿汉就是类一旦加载,就把单例初始化完成,保证getInstance的时候,单例是已经存在的了,
而懒汉比较懒,只有当调用getInstance的时候,才会去初始化这个单例。
相关文章
- Java设计模式----观察者模式详解
- Java设计模式-Builder构造者模式
- Java项目部署目录结构与部署方法 打包方法attilax总结 目录 1.1. Java web项目部署目录结构1 2. Springboot项目的部署结构2 3. Java项目的开发模式下目录
- Atitit.linq java的原理与实现 解释器模式
- Java迭代器模式:优雅遍历集合,实现简洁高效的迭代器设计
- 当复制即创新:深入探究Java原型模式的魅力
- Java的二十三种设计模式(建造者模式(Builder))
- Java设计模式(十) 备忘录模式 状态模式
- Java——设计模式(装饰模式_IO)
- Java设计模式菜鸟系列(七)命令模式建模与实现
- JAVA学习篇--JAVA两种编程模式控制
- 菜鸟版JAVA设计模式—从买房子看代理模式
- Java开发篇——设计模式(3)面试被问工厂模式?不要怕看这里!
- Java迭代器模式:优雅遍历集合,实现简洁高效的迭代器设计
- Java观察者模式:轻松实现对象间的一对多依赖
- 【设计模式】Java 的三种代理模式