为了账号安全,请及时绑定邮箱和手机立即绑定

模式的秘密---单例模式

难度中级
时长30分
学习人数
综合评分9.63
276人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 懒汉模式
    查看全部
  • 饿汉模式
    查看全部
  • 这里讲的线程不安全,主要是在判断是否创建了这个实例的代码块里。楼上很多赞的那个,提到的方法叫双重检查锁定。 问题根源是,instance = new Instance()可以分解成三行伪代码。正常的顺序是分配对象的内存空间->初始化对象->设置instance指向刚分配的内存地址。注意第2.3步会被重排序。这时候instance被分配了内存但是没有初始化。如果这时候有一个线程B来访问,他判断instance!=null后调用这个对象时发现对象没有初始化,就出现bug了~解决方案:1、Instance声明为volatile类型。2、允许重排序,但是重排序不被其他线程看到。
    查看全部
  • 这里讲的线程不安全,主要是在判断是否创建了这个实例的代码块里。楼上很多赞的那个,提到的方法叫双重检查锁定。 问题根源是,instance = new Instance()可以分解成三行伪代码。正常的顺序是分配对象的内存空间->初始化对象->设置instance指向刚分配的内存地址。注意第2.3步会被重排序。这时候instance被分配了内存但是没有初始化。如果这时候有一个线程B来访问,他判断instance!=null后调用这个对象时发现对象没有初始化,就出现bug了~解决方案:1、Instance声明为volatile类型。2、允许重排序,但是重排序不被其他线程看到。
    查看全部
  • 设计模式:是一套反复被使用、多数人知晓的、经过分类编目的、代码设计经验的总结。 使用设计模式是为了可重用代码、让代码更容易被他人理解,保证代码可靠性
    查看全部
    0 采集 收起 来源:单例模式简介

    2017-08-15

  • 单例模式中的懒汉模式: 第一步同样是将构造方法设置为private类型的; 第二步:private static Singleton singleton; 第三步:在我们的public static Singeleton getInstance()方法中用if语句进行判断;if(null == singleton){singleton = new Singleton();}return singleton---该模式并没有在类加载的时候进行创建单例,而只有当用户去获取的时候采取判断是否为空,是空的话才会获取该对象,后期再去获取的时候,就直接给返回单例对象了。
    查看全部
  • 懒汉模式和饿汉模式区别
    查看全部
  • 第一步:修改默认的构造方法; 第二步:创建唯一的一个实例,并将其设置为static类型的 private static Singleton singleton = new Singleton(); 第三步:定义一个public static Singleton getInstance()方法;------此即单例模式模式创建的饿汉模式(不管用户是否需要,只要类加载,就会去创建该单例模式的对象,即假设总是处于饥饿状态!!!)
    查看全部
  • 单例模式
    查看全部
    0 采集 收起 来源:单例模式简介

    2017-08-04

  • static 静态的成员,为类所有。当类被加载时,被static修饰的东西就要初始化
    查看全部
  • 对象方法要调用 可以在方法前面加static变成类方法,然后被调用
    查看全部
  • 什么是设计模式
    查看全部
    0 采集 收起 来源:单例模式简介

    2017-07-29

  • 饿汉单例模式加载类时比较慢,获取对象速度快。线程是安全的。 懒汉单例模式加载快,获取对象速度相对慢。线程是不安全的。
    查看全部
  • public class singleton(){ pravite static singleton instance = new singleton(); public static singleton getInstance(){ return instance; } }
    查看全部
  • 饿汉单例模式的特点:加载类比较慢,运行时获取对象比较快,线程安全 懒汉单例模式的特点:加载类比较快,运行时获取对象比较慢,线程不安全
    查看全部

举报

0/150
提交
取消
课程须知
本课程是 Java 开发课程的高级课程,如果您是新手,建议先移步 《Java入门第一季》和《Java入门第二季》
老师告诉你能学到什么?
1、 了解设计模式 2、 理解单例模式的含义及应用场合 3、 掌握单例模式中饿汉模式和懒汉模式的使用 4、 理解两种模式的区别

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!