今天去笔试,碰到一道笔试题问的是用java写出单例模式的简单例子。单例模式之前看过,可是看过也就忘了,真正要用的时候却还是记不起来,怪自己看书太马虎了。
单例模式分两种,一种是饿汉式单例,一种是懒汉式单例。饿汉式单例在单例类被加载时候,就实例化一个对象交给自己的引用;而懒汉式在调用取得实例方法的时候才会实例化对象。
饿汉式单例:
public class HungrySingleton {
private HungrySingleton() {}
private static HungrySingleton hs=new HungrySingleton();
public static HungrySingleton getInstance() {
return hs;
}
}
懒汉式单例:
public class LazySingleton {
private LazySingleton() {}
private static LazySingleton ls;
public static synchronized LazySingleton getInstance() {
if(ls==null) {
ls=new LazySingleton();
}
return ls;
}
}