mam 2 opcje:Singleton i zmienna static public Java
Singleton
class Singleton{ private static Singleton singleton = null; public static synchronized Singleton getInstance(){ if(singleton == null){ singleton = new Singleton(); } return singleton; } }
używając
static final
poleprivate static final Singleton singleton = new Singleton(); public static Singleton getSingleton() { return singleton; }
Jaka jest różnica? (singlethreaded lub multithreaded)
Aktualizacje: wiem o metodzie Bill Pugh lub enum
. Nie szukam właściwej drogi, ale użyłem tylko 1. Czy jest jakaś różnica b/w 1 lub 2?
Po zaktualizowanym pytaniu nie ma różnicy. –
to pytanie nie ma nic wspólnego z singleton. pytasz o dostęp do pola statycznego ze zsynchronizowanego/niezsynchronizowanego kontekstu. edytuj znaczniki proszę. – Juvanis
@BhavikAmbani Nie zgadzam się, ponieważ pierwsza opcja zablokuje każdy wątek, który próbuje uzyskać instancję i dlatego jest nieco mniej wydajna. –