java里的單例實現(xian)
枚舉實現單例
線(xian)程安(an)全,調(diao)用(yong)效(xiao)率高,不能延時加載,可(ke)以天然的防止反(fan)射和反(fan)序列化(hua)調(diao)用(yong)
public enum SingletonFactory {
//枚舉元素本身就是單例
INSTANCE;
//添加自己需要的操作
public SingletonObject getInstance(){
return new SingletonObject();
}
}
靜態內部類實現單例
線程(cheng)安全,調用(yong)效率高(gao),可以延(yan)時加載, 使用(yong)內部(bu)類的好處(chu)是,靜態內部(bu)類不會(hui)在(zai)單(dan)例加載時就加載,而(er)是在(zai)調用(yong)getInstance()方法(fa)時才進(jin)行加載,達到了類似懶漢模(mo)式的效果,而(er)這種方法(fa)又是線程(cheng)安全的.
public class SingletonFactory {
public static SingletonObj getInstance() {
return SingletonObj.instance.context;
}
private static class instance {
private static final SingletonObj context = new SingletonObj();
}
}