单例模式(Singleton) 是一种平时常见的设计模式,在Java应用中,单里模式保证在JVM中,只存在一个实例,这样的设计模式有几个好处:
1、对于某些类创建比较频繁,切内存占用较大的对象,可以节省一大笔的系统开销
2、 节省了new 的操作,降低了系统内存的使用频率,减少垃圾回收器(GC)的压力
3、如果一个军队出现多个将军,那么这个军队会乱成一团,对于程序也是一样的,只有使用单例模式,才能保证管理者独立的控制整个流程。
/**
*饿汉式,一开始就加载
**/
public class Singleton {
private static Singleton ourInstance = new Singleton();
public static Singleton getInstance() {
return ourInstance;
}
private Singleton() {
}
/* 如果该对象被用于序列化,可以保证对象在序列化前后保持一致 */
public Object readResolve() {
return getInstance();
}
}
/**
*懒汉式,延迟加载,用到时才加载,节约资源
*/
public class SingletonTest {
private static SingletonTest instance = null;
private SingletonTest() {
}
private static synchronized void syncInit() {
if (instance == null) {
instance = new SingletonTest();
}
}
public static SingletonTest getInstance() {
if (instance == null) {
syncInit();
}
return instance;
}
}
网友评论