常见的单例写法
Posted lisin-lee-cooper
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见的单例写法相关的知识,希望对你有一定的参考价值。
/**
* 饿汉式
* 类加载的时候完成实例化,线程安全
* @Date 2022-02-24 11:38
*/
public class HungaryHanStyle
private static HungaryHanStyle instance = new HungaryHanStyle();
private HungaryHanStyle()
public static HungaryHanStyle getInstance()
return instance;
/**
* 1分配内存空间
* 2 初始化对象
* 3 将对象指向刚分配的内存空间
* volatile 避免 2和3 指令重排序
* @Date 2022-02-24 11:42
*/
public class LazyStyle
private static volatile LazyStyle instance;
private LazyStyle()
public static LazyStyle getInstance()
if (instance == null)
synchronized (LazyStyle.class)
if (instance == null)
instance = new LazyStyle();
return instance;
/**
* 静态内部类是
* 实现懒加载、线程安全,而且JVM还保持了指令优化的能力。
*
* @Date 2022-02-24 14:06
*/
public class InnerStyle
private InnerStyle()
private static class InnerSingleton
private static final InnerStyle instance = new InnerStyle();
public static InnerStyle getInstance()
return InnerSingleton.instance;
public enum EnumStyle
INSTANCE;
以上是关于常见的单例写法的主要内容,如果未能解决你的问题,请参考以下文章