这是一个使用懒汉式实现的Java单例模式代码示例:
public class Singleton { // 使用volatile关键字确保多线程环境下的正确性 private static volatile Singleton instance; // 将构造方法私有化,防止外部实例化 private Singleton() { // 防止通过反射创建多个实例 if (instance != null) { throw new RuntimeException("Use getInstance() method to get the single instance of this class."); } } // 提供一个静态方法来获取唯一的实例 public static Singleton getInstance() { // 双重检查锁定(Double-Checked Locking) if (instance == null) { synchronized (Singleton.class) { if (instance == null) { instance = new Singleton(); } } } return instance; } // 示例方法 public void showMessage() { System.out.println("Hello, I'm a singleton!"); } }
这是一个使用饿汉式实现的Java单例模式代码示例:
public class Singleton { // 使用volatile关键字确保多线程环境下的正确性 private static final Singleton instance = new Singleton(); // 将构造方法私有化,防止外部实例化 private Singleton() { // 防止通过反射创建多个实例 if (instance != null) { throw new RuntimeException("Use getInstance() method to get the single instance of this class."); } } // 提供一个静态方法来获取唯一的实例 public static Singleton getInstance() { return instance; } // 示例方法 public void showMessage() { System.out.println("Hello, I'm a singleton!"); } }
这两种实现方式都可以确保在多线程环境下只创建一个实例。你可以根据自己的需求选择合适的实现方式。