所谓“懒汉式”与“饿汉式”的区别,是建立单例对象的时间不同。
“懒汉式” 是在你真正用的时候 才去创建这个单例对象。
懒汉式在多线程情况下 存在安全问题。
比如:有个单例对象
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; //直接返回这个单例对象
}
网友评论