我想通过这种方式来使用Singleton模式:分析JVM Singleton模式被修建为一个常数
public static final XXX INSTANCE = new XXX();
private XXX() {}
你可以分析从JVM的角度后果?
我想通过这种方式来使用Singleton模式:分析JVM Singleton模式被修建为一个常数
public static final XXX INSTANCE = new XXX();
private XXX() {}
你可以分析从JVM的角度后果?
如果您有多线程应用程序,则可能会遇到问题。这篇文章可能有帮助。 Thread Safe Singleton
将单例初始化为最终静态字段是安全的。您需要牢记的是,虽然构造本身是线程安全的,但并不会加强内部代码的安全性。
有时单身人士是解决问题的正确方法,但我会鼓励你远离他们。 It makes usually testing harder, if nothing else.
你试过了吗?你遇到过任何问题吗? – Makoto
没有。唯一的问题是你将无法延迟加载它。但对大多数物体来说这不是必需的。 – Thihara
除了下面提到的多线程问题之外,请注意,在Java中,同一个类可能会在同一个VM中多次加载(例如,在Web服务器中的单独WAR中,如果类不是'存在于服务器的类路径中)。 Java中的单例不能保证是这样的,所以要小心你使用它们的方式。 –