单例模式

一、七种单例模式写法

  1. 单例模式 : 保证全局过程中只存在一个唯一实例的模式 。
  2. 第一种: 饿汉式

    1. 饿汉式相对于 懒汉式消耗内存的 。
    2. 代码

      class Task{//在定义这个对象的时候并且给值的形式--- 饿汉式 private static Task t = new Task();//构造函数私有化private Task() {}public static Task getInstanse(){return  t; }
      }
      
  3. 第二种: 饿汉式变种

    1. 代码

      class Task{private static Task t;static{t = new Task();}public static Task getInstanse(){return t;}
      }
      
  4. 第三种: 懒汉式

    1. 相对于饿汉式而言 , 线程不安全
    2. 代码

      class Task_02{private static Task_02 t;private Task_02(){}//在用到的时候才初始化    ---懒汉式public static Task_02 getInstanse(){if(t ==null){t = new Task_02();}return t;}
      }
      
  5. 第四种 : 懒汉式 线程安全

    1. 效率低 , 99%的情况下不需要同步
    2. 代码:

      class Task_02{private static Task_02 t;private Task_02(){}//在用到的时候才初始化    ---懒汉式public static synchronized Task_02 getInstanse(){if(t ==null){t = new Task_02();}return t;}
      }
      
  6. 第五种: 静态内部类

    1. 即使类被加载也不会被实例化 , 只有真正被使用时才会被初始化。
    2. 代码:

      public class SingletonDemo{private static class Task_02{private static Task_02 t;private Task_02(){}//在用到的时候才初始化    ---懒汉式public static Task_02 getInstanse(){if(t ==null){t = new Task_02();}return t;}}
      }
      
  7. 第六种: 枚举

    1. 这是一种被提倡的方式 , 不仅能避免多线程安全问题 , 还能防止反序列化重新创建新的对象。
    2. 代码:

      public enum SingletonDemo{INSTANSE;public void whateverMethod(){}
      }
      
  8. 第七种: 双重校验锁

    1. 必须在JDK1.5之后才能看到正常的单例效果
    2. 代码:

      class Task_02{private static Task_02 t;private Task_02(){}//在用到的时候才初始化    ---懒汉式public synchronized static Task_02 getInstanse(){if(t ==null){synchronized(Singleton.class){if(t == null){t = new Task_02();}}}return t;}
      }
      

Java 设计模式 --- 单例模式相关推荐

  1. Java 设计模式 - 单例模式

    Java 设计模式 - 单例模式 作者: 霍英俊 [huo920@live.com] 文章目录 Java 设计模式 - 单例模式 单例设计模式介绍 单例设计模式八种方式 饿汉式 - 静态常量 饿汉式( ...

  2. Java设计模式——单例模式

    单例模式 1.什么是单例模式. 2.单例设计的几种实现方式. 2.1.懒汉式 2.2.饿汉式 2.3.登记式 3.总结 4.建议 1.什么是单例模式. 确保某一个类只有一个实例,并且提供一个全局访问点 ...

  3. Java设计模式——单例模式的七种写法

    单例模式(Singleton) 单例模式(Singleton)是一种常用的设计模式.在Java应用中,单例模式能保证在一个JVM中,该对象只有一个实例存在.这样的模式有几个好处: 1.某些类创建比较频 ...

  4. JAVA设计模式--单例模式

    Singleton是一种创建型模式,指某个类采用Singleton模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点. 核心知识点如下: (1) 将采用单例设计模式的类的 ...

  5. 我的Java设计模式-单例模式

    就算不懂设计模式的兄弟姐妹们,想必也听说过单例模式,并且在项目中也会用上.但是,真正理解和熟悉单例模式的人有几个呢?接下来我们一起来学习设计模式中最简单的模式之一--单例模式 一.为什么叫单例模式? ...

  6. JAVA设计模式 - 单例模式

    单例模式(Singleton)是软件设计中一种比较常见的 , 相对简单的设计模式 . 1 . 单例模式的定义 所谓单例 , 指的就是单示例 , 即某个类的实现对象有且仅能有一个 , 并提供对外调用的方 ...

  7. java设计模式—单例模式

    (一)单例模式  java中一共有23种设计模式 : 是开发人员根据不同的代码场景总结出来的不同的实现方法, 归纳为23种代码的设计方法, 单例模式就是其中的一种. 单例模式 : 在整个系统中,一个类 ...

  8. 【文末抽书】Java设计模式--单例模式

    来源 :投稿 | 作者 : gyl-coder|原文:阅读原文 在介绍单例模式之前,我们先了解一下,什么是设计模式? 设计模式(Design Pattern):是一套被反复使用,多数人知晓的,经过分类 ...

  9. java设计模式---单例模式

    关于单例模式的文章,其实网上早就已经泛滥了.但一个小小的单例,里面却是有着许多的变化.网上的文章大多也是提到了其中的一个或几个点,很少有比较全面且脉络清晰的文章,于是,我便萌生了写这篇文章的念头.企图 ...

  10. JAVA设计模式-单例模式(Singleton)线程安全与效率

    一,前言 单例模式详细大家都已经非常熟悉了,在文章单例模式的八种写法比较中,对单例模式的概念以及使用场景都做了很不错的说明.请在阅读本文之前,阅读一下这篇文章,因为本文就是按照这篇文章中的八种单例模式 ...

最新文章

  1. 第十三届光华工程科技奖名单揭晓!这40位专家和1个团体获奖
  2. Java 工程师必须掌握的 JVM 类加载机制!
  3. JS Range 对象的使用
  4. 利用神经网络 遗传算法求得函数极小极大值
  5. python构造和析构_python魔法方法 构造和析构实例讲解
  6. (仿头条APP项目)1.app载入界面相关功能实现
  7. Linq to sql 消除列重复 去重复
  8. int、bigint、mediumint、smallint、tinyint的比较
  9. TCP三次挥手四次握手(面试总结)
  10. 单片机从00到99c语言,跪求单片机0~99数码管显示用C语言编写的程序
  11. 成长之路——发现问题、提出问题和解决问题
  12. 我的世界电脑版服务器区块怎么显示,我的世界区块显示指令 | 手游网游页游攻略大全...
  13. arcgis10动态地图的制作
  14. matlab画柱形图
  15. NCX SQL编程规范
  16. 互联网江湖之“清华1996级”
  17. MySQL统计数据库所有表的数据量
  18. dubbo源码编译和打包
  19. logit回归模型假设_Logistic回归模型及应用建模(二)
  20. STC89C52RC 按键控制LED

热门文章

  1. 编码注释coding: utf-8
  2. Autofac 设置方法拦截器的两种方式
  3. bzoj1601: [Usaco2008 Oct]灌水
  4. JAVA中int、String的类型转换
  5. Linux对文件内容基本操作(学习笔记七)
  6. Expression Bland 入门视频(五) 了解对象面板和属性面板
  7. python字典的常见操作_Python 字典(Dictionary) 基本操作
  8. css 超出隐藏滚动条_css 之内容溢出滚动,隐藏滚动条(解决火狐浏览隐藏不了滚动条问题)...
  9. 每日程序C语言32-取一个整数从右端开始的4-7位
  10. c#窗体程序生成错误_用C#语言做的窗体程序中出错恶劣怎么办?