单例模式

单例模式:目的是不让类可以实例化多个,只让其实例化一个(不管实例化几次,值都相同)

  

1.懒汉模式(有点无语的比喻)

  要实例化的类

public class Student {
    //设置私有静态变量
    private static Student student=null;

    //设置私有无参构造
    private Student() {

    }

    //设置一个公有静态类来让其他类访问(可当做访问接口)
    public static synchronized Student door(){
        if(student==null){
            student=new Student();
        }
            return student;
    }
}

在另外一个类调用这个方法:

        Student stu1=Student.door();
        Student stu2=Student.door();
        System.out.println(stu==stu1);
        System.out.println(stu==stu2);

其结果为:

  注:如果强行实例化,当然会报错啦~

2.饿汉模式

  要实例化的类

public class Student {
    //设置静态变量
    private static Student student=new Student();

    //设置一个公有静态类来让其他类访问(可当做访问接口)
    public static synchronized Student door(){
            return student;
    }
}

在另外一个类调用这个方法:

Student stu1=Student.door();
Student stu2=Student.door();
System.out.println(stu==stu1);
System.out.println(stu==stu2);
原文地址:https://www.cnblogs.com/wang2386033566/p/9323290.html