单例模式:
1.保证类在内存中只能有一个对象
单例模式分为:
1.懒汉式:类一加载就创建对象
2.饿汉式:用的时候,才去创建对象
相关经验:
饿汉式 (是不会出现问题的单例模式)
懒汉式 (可能会出现问题的单例模式)
(1.)懒加载(延迟加载)
(2.)线程安全问题
1.)是否多线程环境 是
2.)是否有共享数据 是
3.)是否有多条语句操作共享数据 是
举例:
1.饿汉模式:
public class Student{
//私有构造方法
private Student(){
}
//在本类中进行实例,只能实例一次,并且是私有的
private static final Student STUDENT = new Student();
//提供公共的方法,供外界去访问
public static Student getStudent(){
return STUDENT;
}
}
2.懒汉模式
public class Student{
private Student(){}
//这是声明这个对象,什么时候使用它的时候什么时候去创建
private static Student student = null;
//线程同步锁,确保内存中只能有一个对象
public synchronized static Student getStudent(){
if (student == null) {
student = new Student();
}
return student;
}
}