我想通過這種方式來使用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中的單例不能保證是這樣的,所以要小心你使用它們的方式。 –