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

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

难度中级
时长30分
学习人数
综合评分9.63
276人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 单例模式简介
    查看全部
    0 采集 收起 来源:单例模式简介

    2016-03-17

  • 单例设计模式——懒汉式
    查看全部
  • 单例设计模式——饿汉式
    查看全部
  • 饿汉与懒汉的区别
    查看全部
  • 单例模式:将构造方法私有化,使外界无法直接创建对象,通过提供的方法获取
    查看全部
  • 基本模式有二十三种:单例模式,抽象工厂模式,建造者模式,工厂模式,原型模式
    查看全部
    0 采集 收起 来源:单例模式简介

    2014-12-05

  • 饿汉模式:加载类时比较慢(因为类加载时就实例化对象),但运行时获取对象的速度比较快(因为对象在类加载时就已经加载好了),线程安全 1. 将构造方法私有化,不允许外部直接创建对象<br><br> 2. 声明类的唯一实例,使用private static修饰,并实例化<br><br> 3. 提供一个用于获取实例的方法,使用public static修饰<br><br> 懒汉模式:加载类时比较快(类创建时并不需要实例化对象),但运行时获取对象的速度比较慢(获取对象时要实例化对象),线程不安全 1. 将构造方法私有化,不允许外部直接创建对象<br><br> 2. 声明类的唯一实例,使用private static修饰,不实例化<br><br> 3. 提供一个用于获取实例的方法,使用public static修饰,如果为null,就实例化<br> 因为对于饿汉模式来说,对象创建的时机是类加载的时候执行一次,而类只会加载一次,因而饿汉模式仅会创建一个对象。<br> 饿汉模式是线程安全的,而懒汉模式是线程不安全的。为什么这么说呢?因为对于懒汉模式来说,在多线程环境下如果同时有多个线程来调用其获取对象的方法,则此时该方法会被多个线程同时调用(因为没有使用同步),因而有可能造成每个调用的方法都new了一个该类对象,进而导致返回的对象不同,这就不符合单例模式的设计初衷了,因而称其为线程不安全的
    查看全部
  • 单例模式——饿汉式(加载时就创建)<br> 1. 将无参构造方法显示私有化, 不允许外部直接创建对象<br> private Singleton(){}<br> 2. 创建私有静态的唯一实例类的对象, 使用private static修饰<br> private static Singleton instance = new Singleton();<br>static静态的属于类所有,当类加载时此处的代码就会执行对象就会被创建,不知足所以为饿汉模式 3. 提供一个公共静态方便外部用于获取实例的方法, 使用public static修饰<br> public static Singleton getInstance(){return instance;}
    查看全部
  • 设计模式:一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。 目的:可重用代码,让代码更容易被他人理解、保证代码可靠性。 单例模式: 有些对象只需要一个,如:配置文件、工具类、线程池、缓存、日志对象等 多个程序读取一个配置文件,实际上配置文件还是只有一个,如果创造出多个实例,就会导致很多问题,占用资源过多,不一致的结果等
    查看全部
    0 采集 收起 来源:单例模式简介

    2016-03-10

  • 饿汉模式:加载类时比较慢,但运行时获取对象的速度比较快,线程安全 1. 将构造方法私有化,不允许外部直接创建对象 2. 声明类的唯一实例,使用private static修饰,并实例化 3. 提供一个用于获取实例的方法,使用public static修饰 懒汉模式:加载类时比较快,但运行时获取对象的速度比较慢,线程不安全,(解决方法:在getinstance 方法用synchronized修饰) 1. 将构造方法私有化,不允许外部直接创建对象 2. 声明类的唯一实例,使用private static修饰,不实例化 3. 提供一个用于获取实例的方法,使用public static修饰,如果为null,就实例化
    查看全部
  • 饿汉模式:加载类时比较慢,但运行时获取对象的速度比较快,线程安全 1. 将构造方法私有化,不允许外部直接创建对象 2. 声明类的唯一实例,使用private static修饰,并实例化 3. 提供一个用于获取实例的方法,使用public static修饰 懒汉模式:加载类时比较快,但运行时获取对象的速度比较慢,线程不安全,(解决方法:在getinstance 方法用synchronized修饰) 1. 将构造方法私有化,不允许外部直接创建对象 2. 声明类的唯一实例,使用private static修饰,不实例化 3. 提供一个用于获取实例的方法,使用public static修饰,如果为null,就实例化
    查看全部
  • 饿汉线程安全 懒汉线程不安全
    查看全部
  • 懒汉模式 私有化构造方法之后,只声明静态私有对象而不实例化,在公有静态方法中判断对象为空时才去实例化一个唯一对象。 使用时创建,故为懒汉
    查看全部
  • 饿汉模式 默认构造方法私有化,在类中new出一个私有静态的唯一对象,再用公有静态方法获取。 类加载时默认创建对象,故为饿汉。
    查看全部
  • 饿汉式和懒汉式的区别 如图,简单明了
    查看全部

举报

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

微信扫码,参与3人拼团

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

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