单例(Singleton)模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。在很多操作中,比如建立目录、数据库连接等都需要这样的单线程操作。
单例模式的好处是节省内存。
一般Singleton模式通常有几种形式:
第一种形式:饿汉式
public class Singleton {
private static Singleton instance=new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
第二种形式:懒汉式
public class Singleton {
private static instace=null;
private Singleton() {}
public static synchronized Singleton getInstance() {
if(instance==null) {
instance=new Singleton();
}
return instance;
}
}
注解:这种形式采用lazy initialization ,也就是说第一次调用时初始Singleton,以后就不用再生成了。采用了synchronized,如果没有synchronized,那么可能得到多个Singleton实例。
单例模式的好处是节省内存。
一般Singleton模式通常有几种形式:
第一种形式:饿汉式
public class Singleton {
private static Singleton instance=new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
第二种形式:懒汉式
public class Singleton {
private static instace=null;
private Singleton() {}
public static synchronized Singleton getInstance() {
if(instance==null) {
instance=new Singleton();
}
return instance;
}
}
注解:这种形式采用lazy initialization ,也就是说第一次调用时初始Singleton,以后就不用再生成了。采用了synchronized,如果没有synchronized,那么可能得到多个Singleton实例。