所谓“懒汉式”与“饿汉式”的区别,是在与建立单例对象的时间不同。
“懒汉式”是在你真正用到的时候才去建这个单例对象:
懒汉式在多线程情况下存在安全问题
比如:有个单例对象
private static Student student = null; //不建立对象
Student getInstance(){
if(student == null) { //先判断是否为空
student = new Student(); //懒汉式做法
}
return student;
}
“饿汉式”是在不管你用的用不上,一开始就建立这个单例对象:
比如:有个单例对象
private static Student student = new Student(); //建立对象
Student getInstance(){
return student; //直接返回单例对象
}