Avatar ·

Java中单例模式的高效实现

大家好!我是一名初级Java开发者,正在学习设计模式。我遇到了单例模式,但在实现上有些困惑。 问题:我需要创建一个在整个应用程序中只保证有一个实例的类。我写了一个简单的懒加载版本,但在多线程环境下它无法正确工作。以下是我的代码: ```java public class ConfigManager { private static ConfigManager instance; private ConfigManager() {} public static ConfigManager getInstance() { if (instance == null) { instance = new ConfigManager(); } return instance; } } ``` 当我用多个线程运行测试时,有时会创建多个实例。我了解过synchronized,但担心这会严重影响性能。我还看到过使用enum和静态块的方案,但我不清楚在现代应用程序中哪种被认为是“正确”且高效的。 请告诉我如何正确