设计模式_单例模式之懒汉式

单例模式:
		饿汉式:类一加载就创建对象
		懒汉式:用的时候,才去创建对象

面试题:单例模式的思想是什么?请写一个代码体现。
	答:保证类在内存中只有一个对象。
	开发:饿汉式。(是不会出问题的单例模式)
	面试:赖汉式。(可能会出问题的单例模式)
		A:赖加载(延迟加载)
		B:线程安全问题
			a:是否多线程环境		是
			b:是否有共享数据		是
			c:是否有多条语句操作共享数据		是


package cn.itcast_03;

public class TeacherDemo {
	public static void main(String[] args) {
		Teacher t1 = Teacher.getTeacher();
		Teacher t2 = Teacher.getTeacher();
		System.out.println(t1 == t2);
		System.out.println(t1);// cn.itcast_03.Teacher@6bbc4459
		System.out.println(t2);// cn.itcast_03.Teacher@6bbc4459
	}
}

package cn.itcast_03;

/*
 * 单例模式:
 * 		饿汉式:类一加载就创建对象
 * 		懒汉式:用的时候,才去创建对象
 * 
 * 面试题:单例模式的思想是什么?请写一个代码体现。
 * 		答:保证类在内存中只有一个对象。
 * 		开发:饿汉式。(是不会出问题的单例模式)
 * 		面试:赖汉式。(可能会出问题的单例模式)
 * 			A:赖加载(延迟加载)
 * 			B:线程安全问题
 * 				a:是否多线程环境		是
 * 				b:是否有共享数据		是
 * 				c:是否有多条语句操作共享数据		是
 */
public class Teacher {
	// 私有构造方法
	private Teacher() {

	}

	// 自已创建对象
	// 为了让外界不能修改该对象加private修饰
	private static Teacher t = null;

	// 对外界提供一个访问方式
	public synchronized static Teacher getTeacher() {
		// t1,t2,t3
		if (t == null) {
			// t1,t2,t3
			t = new Teacher();
		}
		return t;
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值