谢谢 http://blog.sina.com.cn/s/blog_75247c770100yxpb.html 的作者
深入浅出下
public class SingleA{
private static class SingleHolder{
public final static SingleA instance=new SingleA();
}
public static SingleA getInstance(){
return SingleHolder.instance;
}
}
1, getInstance()是一个静态工厂方法
a,静态工厂方法可以有名字,名字随便取
b,静态工厂方法不必在每次调用它们的时候创建一个新对象
c,静态工厂方法可以返回原返回类型的任何子类型的对象
2,因为1.b所以第一次创建instance后,不会再创建新对象了。有效的提升了性能。
3,私有静态内部类也有效的保护了外部对instance的初始化。
其余的线程安全的单例模式请看谢谢中的链接文章