- 概念
整个系统中确保一个类只有一个对象实例
- 使用原因
- 方便管理
- 资源的合理利用
- 实现思路
- 构造函数私有化
- 静态函数返回实例
- 确保对象实例有且只有一个
public class HungrySingleton {
private HungrySingleton(){
}
private static HungrySingleton single = new HungrySingleton() ;
protected static HungrySingleton getInstance(){
return single;
}
}
还有另一种装B写法
public class HungrySingleton {
private HungrySingleton(){
}
private static HungrySingleton single ;
static{
single = new HungrySingleton() ;
}
protected static HungrySingleton getInstance(){
return single;
}
}
- 饿汉式优缺点
优点 1.线程安全
2.在类加载的同时已经创建好一个静态对象,调用时反应速度快
缺点
资源效率不高,可能getInstance()永远不会执行到,但执行该类的其他静态方法或者加载了该类(class.forName),那么这个实例仍然初始化 。
总结:不管是否需要该类的对象,都已经在内存中生成,通俗讲有点站着茅坑不拉翔。