如何用七种方法实现Java单例模式设计?

2026-04-16 15:083阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计229个文字,预计阅读时间需要1分钟。

如何用七种方法实现Java单例模式设计?

懒汉式-线程不安全

javapublic class Singleton { private static Singleton instance;

private Singleton() {}

如何用七种方法实现Java单例模式设计?

public static Singleton getInstance() { if (instance==null) { instance=new Singleton(); } return instance; }}

懒汉模式-线程不安全

public class Singleton { private static Singleton instance; private Singleton (){ } public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } 懒汉模式-线程安全

public class Singleton { private static Singleton instance; private Singleton (){ } public static synchronized Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } 饿汉模式

public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){ } public static Singleton getInstance() { return instance; } } 饿汉模式-变种

public class Singleton { private static Singleton instance = null; static { instance = new Singleton(); } private Singleton() { } public static Singleton getInstance() { return instance; } } 静态内部类

public class Singleton { private static class SingletonHolder { private static final Singleton INSTANCE = new Singleton(); } private Singleton (){ } public static final Singleton getInstance() { return SingletonHolder.INSTANCE; } } 双重校验锁

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; } } 枚举

public enum Singleton { INSTANCE; public void whateverMethod() { } }

标签:七种

本文共计229个文字,预计阅读时间需要1分钟。

如何用七种方法实现Java单例模式设计?

懒汉式-线程不安全

javapublic class Singleton { private static Singleton instance;

private Singleton() {}

如何用七种方法实现Java单例模式设计?

public static Singleton getInstance() { if (instance==null) { instance=new Singleton(); } return instance; }}

懒汉模式-线程不安全

public class Singleton { private static Singleton instance; private Singleton (){ } public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } 懒汉模式-线程安全

public class Singleton { private static Singleton instance; private Singleton (){ } public static synchronized Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } 饿汉模式

public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){ } public static Singleton getInstance() { return instance; } } 饿汉模式-变种

public class Singleton { private static Singleton instance = null; static { instance = new Singleton(); } private Singleton() { } public static Singleton getInstance() { return instance; } } 静态内部类

public class Singleton { private static class SingletonHolder { private static final Singleton INSTANCE = new Singleton(); } private Singleton (){ } public static final Singleton getInstance() { return SingletonHolder.INSTANCE; } } 双重校验锁

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; } } 枚举

public enum Singleton { INSTANCE; public void whateverMethod() { } }

标签:七种