Reading this site, I\'ve found this:
[The] line private static final Foo INSTANCE = new Foo(); is only executed when the class is actual
private static final Foo INSTANCE = new Foo();
The static initialisation block of any class is guaranteed to be single threaded. A simpler singleton is to use an enum
enum Singleton { INSTANCE; }
This is also threads safe and the class lazy-initialised.