Helio found a reference in Effective Java (Item 3: Enforce the singleton property with a private constructor or an enum type) guarantee that an object is a singleton. I personally think private constructor is good enough.