1
JavaIntermediate#design-patterns#spring
Ensures only one instance per JVM. Thread-safe options: eager initialization, double-checked locking with volatile, or the enum singleton (recommended by Joshua Bloch — serialization-safe and reflection-safe).
public enum Singleton {
INSTANCE;
public void doWork() { System.out.println("working"); }
}
Singleton.INSTANCE.doWork();