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

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

难度中级
时长30分
学习人数
综合评分9.63
273人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • public class SingletonTest { // 定义一个私有构造方法 private SingletonTest() { } //定义一个静态私有变量(不初始化,不使用final关键字,使用volatile保证了多线程访问时instance变量的可见性,避免了instance初始化时其他变量属性还没赋值完时,被另外线程调用) private static volatile SingletonTest instance; //定义一个共有的静态方法,返回该类型实例 public static SingletonTest getIstance() { // 对象实例化时与否判断(不使用同步代码块,instance不等于null时,直接返回对象,提高运行效率) if (instance == null) { //同步代码块(对象未初始化时,使用同步代码块,保证多线程访问时对象在第一次创建后,不再重复被创建) synchronized (SingletonTest.class) { //未初始化,则初始instance变量 if (instance == null) { instance = new SingletonTest(); } } } return instance; } }
    查看全部
  • 懒汉模式线程不安全:从线程安全性上讲,不加同步的懒汉式是线程不安全的。 假设开始线程0进入,判断instance为空,在将要创建实例时,cpu切换,线程1又进来了,同样instance为空 创建了实例,这是cpu切换回来到0线程,继续创建实例,这就会出现两个实例。 所以为了安全使用饿汉模式,在类加载时创建实例,或者使用同步加锁。
    查看全部
  • 常用的单例模式有两种: 1.饿汉模式 2.懒汉模式 创建实例是通过构造方法实现的,只要有构造方法就可以创建实例,没有为类手动创建构造方法,则系统会默认创建一个无参公共的构造方法. 饿汉模式 步骤: 1.构造方法私有化. (被private修饰的变量与方法只能在本类使用,因此外界无法通过构造方法直接创建对象,只能通过类名调用该类的public静态成员与方法.) 2.本类中直接创建一个类的唯一实例,并且是一个私有静态的实例. 3.创建一个公共的静态方法来返回该实例,外界可以直接通过类名调用该方法获取得到实例对象. public class SingleTon{ //构造方法私有化 private SingleTon(){ } //创建类的唯一实例,使用private static修饰. private static SingleTon instance=new SingleTon(); //创建返回该实例的方法供外界使用,必须是public static修饰. public static SingleTon getInstance(){ return instance; } } 用==号就能判断两个对象是否是同一个实例对象.==号判断引用的地址是否一样. 对象的equals方法不重写时作用与==号相同,判断引用的地址是否一样. String中的equals方法默认被重写,因此只要两个对象的内容相同,则返回true. 因为该唯一的实例是在该类被加载时就会去创建,(要早些时候吃饱)因此称为饿汉模式.
    查看全部
  • 1、设计模式:一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。 2、目的:可重用代码,让代码更容易被他人理解、保证代码可靠性。 3、Java中的设计模式:23种: -创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式; -结构型模式:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式; -行为型模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式; -其它模式:并发型模式和线程池模式。 单例模式:保证整个应用中某个实例有且只有一个。 举例:配置文件、工具类、线程池、缓存、日志对象等
    查看全部
    1 采集 收起 来源:单例模式简介

    2016-12-28

  • 单列模式分为: 饿汉式:声明的同时直接实例化。 特点:加载类时比较慢,但运行时获取对象的速度比较快,线程安全。 懒汉式:声明的时候不实例化。 特点:加载类时比较快,但运行时获取对象的速度比较慢,线程不安全。 实现单列模式的三个步骤: 1、将构造方法私有化,不允许外界直接创建对象。 2、声明类的唯一实例,使用private static修饰。 3、提供一个供外界获取实例的方法,使用public static修饰。
    查看全部
  • 单例模式单例模式单例模式单例模式单例模式单例模式单例模式单例模式单例模式单例模式单例模式单例模式单例模式单例模式单例模式单例模式单例模式 哈哈哈,我正好看到这一节
    查看全部
  • 创建方法或者对象前面加上static就变成了类所有的方法或者对象
    查看全部
  • 单利模式的实现是:私有声明构造方法+static实例对象
    查看全部
  • 饿汉模式:加载类时比较慢,但运行时获取对象的速度比较快;线程安全。 懒汉模式:加载类时比较快,但运行时获取对象的速度比较慢;线程不安全。 //单例模式 --- 饿汉模式 public class Singleton { //1.私有构造函数,不允许外部访问 private Singleton() { super(); } //2.创建类的惟一实例,私有。 (类变量) static private Singleton instance = new Singleton(); //3.提供访问惟一实例的公共方法(类方法) public static Singleton getInstance(){ return instance; } } //单例模式 --- 懒汉模式 public class Singleton2 { //1.私有构造函数,不允许外部访问 private Singleton2() { super(); } //2.创建类的惟一实例,私有。 (类变量) static private Singleton2 instance; //3.提供访问惟一实例的公共方法(类方法) public static Singleton2 getInstance(){ if(instance == null){ instance = new Singleton2(); } return instance; } } public class test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); if(s1==s2){ System.out.println("同一个"); }else{ System.out.println("不同"); } } }
    查看全部
  • 模式的秘密---单例模式——“饿汉式” PK “懒汉式” 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 模式的秘密---单例模式——单例模式的懒汉式实现 1、单例模式,懒汉模式:与饿汉不同的是在创建唯一实例时不new初始化: a.将构造函数私有化; b.声明类的唯一实例,并且私有化; c.提供一个static修饰的方法获取当前类所创建的唯一的类实例。 2、理解懒汉:在加载类的时候,只是声明一个引用,并没有实例化。只有第一次调用共有方法时才实例化。形象:不急切的,慵懒的。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 模式的秘密---单例模式——单例模式的饿汉式实现 单例模式——饿汉式(加载时就创建,俗称:怕没吃饱,所以加载时就先“吃”(创建)了先) 1. 将无参构造方法显示私有化, 不允许外部直接创建对象 private Singleton(){} 2. 创建私有静态的唯一实例类的对象, 使用private static修饰 private static Singleton instance = new Singleton(); 3. 提供一个公共静态方便外部用于获取实例的方法, 使用public static修饰 public static Singleton getInstance(){return instance;} Ps:如果把第二种方法的 private 去掉,则直接调用 Singleton.instance; 即可。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 模式的秘密---单例模式——单例模式简介 II 1、设计模式:一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。 2、目的:可重用代码,让代码更容易被他人理解、保证代码可靠性。 3、Java中的设计模式:23种: -创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式; -结构型模式:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式; -行为型模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式; -其它模式:并发型模式和线程池模式。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
    1 采集 收起 来源:单例模式简介

    2016-08-26

  • 模式的秘密---单例模式——单例模式简介 II 1、设计模式:一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。 2、目的:可重用代码,让代码更容易被他人理解、保证代码可靠性。 3、Java中的设计模式:23种: -创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式; -结构型模式:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式; -行为型模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式; -其它模式:并发型模式和线程池模式。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
    1 采集 收起 来源:单例模式简介

    2016-08-26

  • 模式的秘密---单例模式——单例模式简介 I 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
    1 采集 收起 来源:单例模式简介

    2016-08-26

举报

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

微信扫码,参与3人拼团

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

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