设计模式之单例设计模式(懒汉式)

package july.star.thread22;
/**
 * Teacher
 * 饿汉式:类一加载就加载
 * 懒汉式:需要时才加载
 * 面试题:单例模式的思想是什么,请用代码体现。
 *   开发:饿汉式(不会出现问题的单例模式)
 *   面试:懒汉式(可能会出现问题的单例模式)
 *        A:懒加载(延迟加载)
 *        B:线程安全问题
 *            a:是否多线程环境        是
 *            b:是否有共享数据   是
 *            c:是否有多条数据操作共享数据   是
 * @author MoXingJian
 * @email 939697374@qq.com
 * @date 2016年12月10日 下午9:52:02
 * @version 1.0
 */
public class Teacher {
     //私有构造方法
     private Teacher(){
          
     }
     
     //设置对象为空
     private static Teacher t = null;
     
     //假设有3个线程进来 t1,t2,t3
     //如果要解决线程安全问题就要加synchronized
     public synchronized static Teacher getTeacher(){
          //t1,t2,t3
          if(t == null){
              //如果不加同步锁,t1,t2,t3都会进入到这里,那就创建了3个对象
              t = new Teacher();
          }
              return t;
     }
}







//测试
package july.star.thread22;
 /**
  * TeacherDemo
  * 单例设计模式之懒汉式
  * @author MoXingJian
  * @email 939697374@qq.com
  * @date 2016年12月10日 下午9:57:49
  * @version 1.0
  */
public class TeacherDemo {
     public static void main(String[] args) {
          //创建对象
          Teacher t1 = Teacher.getTeacher();
          Teacher t2 = Teacher.getTeacher();
          System.out.println(t1 == t2);     //true
          System.out.println(t1);           //对象一样:july.star.thread22.Teacher@65712a80
          System.out.println(t2);           //          july.star.thread22.Teacher@65712a80
     }
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值