懒汉
public class Student{
private Student();//私有构造
private static Student student = null;
public static Student newStudent(){
if(student == null) {
student = new Student(); //懒汉式做法
}
return student;
}
饿汉
public class Student {
private Student();//私有构造
private static Student student = new Student(); //建立对象
public static Student newStudent(){
return student; //直接返回单例对象
}
厂模式简单的说就是你要我就给,懒汉和饿汉的本质区别,就是实例化对象的时机,即是什么时候将对象创建起来。
所有的方法和属性已经全在内存里了,但是没有调用的话,cup是不会去计算和执行的,只有你调用哪个才去计算和执行哪个属性和方法的代码。
不过,类的静态代码块除外
如 static {
........
}
这种情况之下,类一加载,该代码块就会被执行。 |