java程序优化之单例模式
系统中的一个类只产生一个实例对象的时候,可以采用单例模式,单例模式有两个优点:一是对于频繁使用的对象,可以减少创建对象花费的时间。二是new操作减少,系统内存使用频率也会降低。
简单单例类:
public class Singleton{
private Singleton(){
System.out.println("Singleton is create");
}
private static Singleton instentce = new Singleton();
public static Singleton getInstance(){
return instentce;
}
}
简单单例类存在无法对instance实例延迟加载
方法改进:
public class Singleton{
private Singleton(){
System.out.println("Singleton is create");
}
private static class SingletonHolder{
private static StaticSingleton instentce = new StaticSingleton();
}
public static Singleton getInstance(){
return instentce;
}
}
序列化和反序列化可能会创建多个实例,如果需要进行序列化操作,代码改进:
public class Singleton implements java.io.Serializable{
String name;
private Singleton(){
System.out.println("Singleton is create");
name = "SerSingleton";
}
private static SerSingleton instentce = new SerSingleton();
public static Singleton getInstance(){
return instentce;
}
private Object readResolve(){
return instentce;
}
}