Thanks Ilja.
I was guilty of not searching and taking some effort before asking !
After doing the searches and the necessary read here is what I understand ::
1 >Singletons across clusters
Rarely is their a need to maintain a single Object across all JVM's
since if this was needed we would need to serialize / send across the n/w which in itself is a performance issue
In many cases having one object per JVM is good enough
So next time some interviewer is going to ask me such a question - I am going to throw the kitchen sink at him !
2 >Why do I need the second null check in synchronised block ? ( double checked locking )
This is to prevent the second
thread that has already passed the first non synchronised null check from instantiating a second instance .
Thanks ,
~satish