懒汉式 与 饿汉式 的区别

所谓“懒汉式”与“饿汉式”的区别,是在与建立单例对象的时间不同。

“懒汉式”是在你真正用到的时候才去建这个单例对象:

懒汉式在多线程情况下存在安全问题

比如:有个单例对象

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;  //直接返回单例对象

}

你可能感兴趣的:(懒汉式 与 饿汉式 的区别)