I have this Singleton class inside a Web Application .
public class MyDAO
{
private static MyDAO instance;
private MyDAO() {
}
public static MyDAO getInstance() {
if (instance == null) {
instance = new MyDAO();
}
return instance;
}
I will access it this way
public void get_Data()
{
MyDAO dao = MyDAO.getInstance();
}
How many Objects of MyDAO class will be created if there are 3 Users accessing the Application ??
Will there be one instance of MyDAO per User ??
You must synchronize the access to the
getInstance(). Otherwise some threads might see a not fully initialized version.More on the Singleton Pattern
Once you synchronize it there will only be one instance in the
JVM. No matter how many variables references to the object. But if you are running N servers there will be one instance in eachJVM. So N instances in total.You can double check if you are using
Java 5.0or older:But if your application always needs an instance you can eagerly instantiate it:
But I would go for the
Bill Purgesolution: