单例模式

单例模式,就是Java进程中只存在一个类的实例。
创建的方法:

1. 懒汉式(首次使用时创建,之后判断单例实例存不存在)

  1. 线程安全(加锁)
  2. 线程不安全

2. 饿汉式(在类初始化的时候就会创建,线程安全)

private static final XXX Instance=new XXX();

3. 双检锁 使用volatile,防止指令重排;加锁;

public class Singleton { 
	private volatile static Singleton singleton; 
	private Singleton (){
	} 
	public static Singleton getSingleton() { 
	if (singleton == null) { 
		synchronized (Singleton.class) { 
			if (singleton == null) { 
				singleton = new Singleton(); 
			} 
		} 
	} 
	return singleton; 
	} 
}

4. 静态内部类

  1. 内部类在使用时才会创建实例
public class Singleton { 
	private static class SingletonHolder { 
		private static final Singleton INSTANCE = new Singleton(); 
	} 
	private Singleton (){
	} 
	public static final Singleton getInstance() { 
		return SingletonHolder.INSTANCE; 
	} 
}

5. 枚举类

public enum Singleton { 
	INSTANCE; 
	public void whateverMethod() {
	}
}
posted @   帅气的涛啊  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示

目录