直接上代码:
public class StaticSingleton {
private StaticSingleton() {
//some handler...
}
private static class SingletonHolder {
private static StaticSingleton instance = new StaticSingleton();
}
public static StaticSingleton getInstance(){
return SingletonHolder.instance;
}
}
上述代码再高并发环境下不用上锁,并且只有在getInstance()方法第一次被调用时,StaticSingleton实例才会被创建,该方法巧妙地
使用了内部类和类的初始化方法。内部类为private,外界不可能方位并初始化它。只有调用getInstance()方法时,内部类才会被初始
化。