单例设计
概念:
单例设计模式:在内存中,只存在该类的一个对象
懒汉式
代码:
public class Student {
private static Student student=null; //进行私有构造
private Student() {
}
public synchronized static Student getStudent(){ //给外界提供一个公共的静态方法,返回改类的一个对象加上synchronized锁 避免多线程环境下,有可能出现new了多次
if(student==null){
student=new Student();
}
return student;
}
}
public class MyTest {
public static void main(String[] args) {
Student student = Student.getStudent();
Student student1 = Student.getStudent();
System.out.println(student==student1);//输出为true所以是地址相同对象
}
}
懒汉式:晚创建对象,特点是延迟加载。当我们用的时候它才会去建立对象。(在多线程中的时候可能会出现线程安全问题)
特点:线程安全,调用效率不高,可以延时加载。
饿汉式
代码:
public class Teacher {
private static Teacher teacher=new Teacher();//开始直接创建对象
private Teacher() {
}
public static Teacher getTeacher(){
return teacher;
}
}
public class MyTest2 {
public static void main(String[] args) {
Teacher teacher = Teacher.getTeacher();
Teacher teacher1 = Teacher.getTeacher();
System.out.println(teacher==teacher1);//输出为true所以为地址相同对象
}
}
饿汉式:写类的时候直接就创建对象。
特点:线程安全,调用率高,但是,不能延迟加载。