Java 任何单例模式早期实例化的问题

Java 任何单例模式早期实例化的问题,java,singleton,instantiation,java-memory-model,Java,Singleton,Instantiation,Java Memory Model,我在使用惰性实例化的单例模式时遇到了一些问题 参考文献: 类似地,使用早期实例化的单例模式有什么问题吗?这是大约十年前写的。自2004年以来,最简单的单例模式是使用带有一个实例的enum enum Singleton { INSTANCE; } 这种想法似乎是,实例化单例可能代价高昂,因此,如果过早地(可能对于许多单例来说)实例化,可能会在应用程序启动时导致长时间的暂停,而延迟安装会分散延迟,如果不总是需要单例,可能会完全避免延迟 对于很多应用程序来说,这真的是一个问题吗?我很确定不是

我在使用惰性实例化的单例模式时遇到了一些问题

参考文献:


类似地,使用早期实例化的单例模式有什么问题吗?

这是大约十年前写的。自2004年以来,最简单的单例模式是使用带有一个实例的
enum

enum Singleton {
    INSTANCE;
}

这种想法似乎是,实例化单例可能代价高昂,因此,如果过早地(可能对于许多单例来说)实例化,可能会在应用程序启动时导致长时间的暂停,而延迟安装会分散延迟,如果不总是需要单例,可能会完全避免延迟

对于很多应用程序来说,这真的是一个问题吗?我很确定不是这样的,关于懒散实例化的单身汉的博客帖子和问题的数量与它的实际用途完全不成比例。我同样确信,所有这些关注都给了很多人这样的印象:这就是单例必须实现的方式,并导致他们在一些地方选择了一个不必要的复杂解决方案,而在这些地方,一个简单的、半热切地实例化单例就可以了


那么,为什么这个问题会受到如此多的关注呢?我怀疑这部分是因为它说明了Java内存模型中与并发代码相关的一些更好的方面,部分是因为它是一个smartassery游戏。

为什么这么多人对单例模式感兴趣?@duffymo:因为有那么多关于它的博客文章和问题,所以人们得到的印象很重要