我有兩個選擇:單和公共靜態變量的Java
Singleton模式
class Singleton{ private static Singleton singleton = null; public static synchronized Singleton getInstance(){ if(singleton == null){ singleton = new Singleton(); } return singleton; } }
使用
static final
場private static final Singleton singleton = new Singleton(); public static Singleton getSingleton() { return singleton; }
請告訴我有什麼區別? (單線程或多線程)
更新:我知道Bill Pugh或enum
方法。 我不是在尋找正確的方法,但我只使用了1.是否真的有什麼區別b/w 1或2?
更新後的問題沒有什麼區別。 –
這個問題與單身無關。您詢問有關從同步/非同步上下文訪問靜態字段的問題。請編輯標籤。 – Juvanis
@BhavikAmbani我不同意,因爲第一個選項會鎖定試圖獲取實例的每個線程,因此性能稍差。 –