Java

java单例模式代码示例给

小樊
81
2024-11-16 13:11:39
栏目: 编程语言

这是一个使用懒汉式实现的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!");
    }
}

这两种实现方式都可以确保在多线程环境下只创建一个实例。你可以根据自己的需求选择合适的实现方式。

0
看了该问题的人还看了