Why are you implementing a singleton in the first place?
You do realise that double‑checked locking doesn’t work in
Java?
Well, I think it does work in Java5+.
I think you need to create a
static instance. No need to mess around with synchronisation or
null checks.
I think that is correct; it looks the same as in my
Effective Java™ (Joshua Bloch) page 18. But Bloch points out there is now a far better way to create a Singleton: use an
enum.