优点:写法比较简单,就是在类装载的时候就完成了实例化。避免了线程同步缺点
缺点:在;诶装载的时候就完成实例化,没有都达到LAZY LOADING的效果。如果从开始至终都没用,则会浪费内存
/**
* 静态常量:
* 步骤:
* 1,构造器私有化
* 2,类的内部创建对象
* 3,向外部暴露一个静态的公共方法
* 4,代码实现
*/
public class Single {
public static void main(String[] args) {
//饿汉
Singleton instance1 = Singleton.getInstance();
Singleton instance2 = Singleton.getInstance();
System.out.println(instance1==instance2);
System.out.println("===================");
System.out.println(instance1.hashCode());
System.out.println(instance2.hashCode());
}
}
//饿汉式
class Singleton{
//构造器私有
private Singleton(){}
//在本类创建对象实例
private final static Singleton instance = new Singleton();
//对外提供共有的方法
public static Singleton getInstance(){
return instance;
}
}