java - java中的静态最终(渴望)单例线程安全吗?

标签 java design-patterns singleton

如果我使用 static final 创建一个单例对象,那么它会是线程安全的吗?这是示例代码。

public class StaticSingleton {
    private static final StaticSingleton instance = new StaticSingleton();

    private StaticSingleton() {
    }

    public static StaticSingleton GetInstance() {
        return instance;
    }
}

最佳答案

是的,正如你所说,这很急切,而且线程安全。看看这个例子:

classFoo {
    private static class HelperHolder{
        public static final Helper helper= new Helper();
    }

    public static Helper getHelper() {
        return HelperHolder.helper;
    }
}

这不是急切的,因此只有当您需要他时才会创建我们的辅助对象(内部类在被引用之前不会加载) - 懒惰:)

关于java - java中的静态最终(渴望)单例线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53681762/

相关文章:

java - 获取 Java 8 流的最小值和最大值的简洁方法

c# - 我的 DDD 工厂类中应该有哪些方法?

node.js - NodeJS设计模式: simple http router

c++ - 使用命名空间而不是单例

java - 执行者在单例类中永远等待

java - 在后台处理某些工作时显示带有动画 gif 的 JDialog

java - 如何为 JTextField 添加快捷键?

java - Spring boot基础应用: field NotesRepository required a bean of type 'com.demo.NotesRepository' that could not be found

c++ - 继承与聚合以及 "has-a"与 "is-a"。

具有重载访问器函数的单例上的 C++ 未解析外部