package cn.itcast_05;
/*
* 懒汉式::用的时候,才去创建对象
*
* 面试题:
* 单例模式的思想的思想是什么?请写一个代码体现
* 思想:保证类在内存中只有一个对象
* 开发:用饿汉式(是一种不会出问题的单例模式)
* 面试:懒汉式(可能会出现问题的单例模式)
* A:懒加载(延迟加载)
* B:线程安全问题
* a:是否多线程环境 是
* b:是否用共享数据 是
* c:是否用多条语句操作共享数据 是
*/
public class Teacher{
private Teacher() {
}
private static Teacher t = null;
public synchronized static Teacher getTeacher() {
//t1 t2 t3三条线程
if(t == null) {
//这里可能会议t1 t2 t3三个线程创建三个数据
//所以要加锁
t = new Teacher();
}
return t;
}
}
package cn.itcast_05;
public class TeacherDome {
public static void main(String[] args) {
Teacher t1 = Teacher.getTeacher();
Teacher t2 = Teacher.getTeacher();
System.out.println(t1==t2);
System.out.println(t1);
System.out.println(t2);
}
}