---------------------- android培训java培训、期待与您交流! ----------------------

单例模式:

  单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。

特点:
       1,一个类只能有一个实例
       2,自己创建这个实例
       3,整个系统都要使用这个实例

保证唯一性的思想及步骤:

**为了避免其他程序建立该类对象,先禁止其他程序建立该类对象,即将构造函数私有化

**为了其他程序访问到该类对象,须在本类中创建一个该类私有对象

**为了方便其他程序访问到该类对象,可对外提供一个公共访问方式

两种形式:

1、饿汉式单例类:当类加载的时候就创建对象

 1 class EagerSingleton {
 2   private static final EagerSingleton m_instance = new EagerSingleton();
 3
 4   /** * 私有的默认构造函数,仅供内部调用*/
 5   private EagerSingleton() {
 6    }
 7
 8    /** *这里提供了一个供外部访问本class的静态方法,可以直接访问*/  
 9   public static EagerSingleton getInstance() {
10     return m_instance;
11    }
12 }   

2、 懒汉式单例类:当使用的时候才创建对象

 1 class LazySingleton {
 2   // 注意,这里没有final
 3   private static LazySingleton m_instance = null;
 4
 5   /** * 私有的默认构造函数 */
 6   private LazySingleton() {
 7    }
 8
 9 //使用时生成实例,提高了效率!
10   public synchronized static LazySingleton getInstance() {
11     if (m_instance == null) {
12        m_instance = new LazySingleton();
13      }
14     return m_instance;
15    }
16 }   

饿汉式和懒汉式的区别:

**

饿汉式是类一加载进内存就创建好了对象;

懒汉式则是类才加载进内存的时候,对象还没有存在,只有调用了getInstance()方法时,

对象才开始创建。

**

注:

开发常用饿汉式,因为饿汉式简单安全。懒汉式多线程的时候容易发生问题


---------------------- android培训java培训、期待与您交流! ----------------------

转载于:https://www.cnblogs.com/MercyK/archive/2013/04/29/3020988.html

黑马Java学习笔记之-----单例模式相关推荐

  1. 黑马Java学习笔记之-----集合框架

    ---------------------- android培训.java培训.期待与您交流! ---------------------- 一.概述: Java的集合类是一种特别有用的工具类,它可以 ...

  2. 传智播客黑马Java学习笔记_day08_2

    设计模式:对问题行之有效的解决方式,一种思想,java24种 单例设计模式 解决问题:可以保证一个类的对象在内存中的唯一性 应用场景:多个程序使用同一个配置文件对象,就要保证配置文件的唯一性,配置文件 ...

  3. 传智播客黑马Java学习笔记_09

    在子类创建对象时,发现父类的构造方法也运行了,为什么呢? 在子类的构造函数中第一行有一个隐式语句super(); class Fu{Fu(){System.out.println("Fu i ...

  4. 传智播客黑马Java学习笔记_day05

    遍历数组 class Demo{public static void main(String args[]){int[] arry=new int[]{87,99,56};for(int x=0;x& ...

  5. 传播智客黑马Java学习笔记_day06

    二维数组的定义方式 //@左边是实体类型,右边是实体哈希值 class Demo{public static void main(String args[]){/*int[][] array=new ...

  6. 传智播客黑马Java学习笔记_day10_02

    对象的多态性 父类或者接口的引用指向子类对象 多态的好处 提高了代码的扩展性,前期的代码可以使用后期的内容 多态的弊端 前期的代码不能调用后期的特有内容 多态的前提 必须有关系:继承.实现 必须覆盖父 ...

  7. 传播智客黑马Java学习笔记_day10_01

    开发中接口分为使用接口和实现接口的子类(暴露规则,使用规则,实现规则) interface USB{//暴露规则public abstract void open();public abstract ...

  8. Java学习笔记(原创)

    Java学习笔记(原创) 2011-12-01 16:37:00|  分类: Java|举报|字号 订阅 下载LOFTER客户端 基本知识 一. Java基础 1. java语言的特点: ①简单:没有 ...

  9. java学习笔记11--Annotation

    java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...

最新文章

  1. windows下载anaconda3速度太慢怎么办
  2. 正态分布||方差、均值的概念
  3. NOIP2017洛谷P3953:逛公园(分层图最短路、dp、拓扑)
  4. nosql和rdnms_用于SaaS和NoSQL的Jdbi
  5. vue之vue-router跳转
  6. oracle集群启动状态,oracle 11g集群软件无法启动解决步骤
  7. Java 数据库连接池的实现
  8. 基于SSM的Java图书管理系统
  9. 软件测试之Web测试流程和方法
  10. Springboot实现拦截器与过滤器
  11. 爱豆被“调包”?周杰伦:说好不哭
  12. MBR、主引导扇区,主分区、扩展分区、逻辑分区,活动分区、引导分区、系统分区、启动分区
  13. java系统化基础-day01-基础语法知识
  14. 东电计算机专业好就业吗,东北电力大学就业前景怎样好不好
  15. 仪器分析和计算机,化学分析和仪器分析的区别
  16. html中hover的作用,hover在css中的作用是什么
  17. python做表格教程_表格函数教程
  18. java 多线程 内存泄露_关于内存泄露的总结
  19. 【Python脚本进阶】2.1、端口扫描器(下):NMAP端口扫描
  20. 胡小林:把日常生活中碰到的事变成我们发露忏悔的机会

热门文章

  1. 2019 训练比赛 记录
  2. 透過 OpenNI 建立 Kinect 3D Point Cloud
  3. luogu5024 [NOIp2018]保卫王国 (动态dp)
  4. 运行 composer update,提示 Allowed memory size of bytes exhausted
  5. tyvj1305 最大子序和 【单调队列优化dp】
  6. 在Ubuntu下利用Eclipse调试FFmpeg
  7. 分别使用委托、接口、匿名方法、泛型委托实现加减乘除运算
  8. ASP.NET MVC和jQuery DataTable整合
  9. 我要再接再力 学更多
  10. linux发行版本在这里。