单例模式

什么是单例模式?

单例保证一个对象JVM中只能有一个实例,常见单例 懒汉式、饿汉式

什么是懒汉式,就是需要的才会去实例化,线程不安全。

什么是饿汉式,就是当class文件被加载的时候,初始化,天生线程安全。

单例写法

懒汉式代码

class SingletonTest {

     public static void main(String[] args) {

         Singleton sl1 = Singleton.getSingleton();

         Singleton sl2 = Singleton.getSingleton();

         System.out.println(sl1 == sl2);

     }

}

 

public class Singleton {

     // 当需要的才会被实例化

     private static Singleton singleton;

     private Singleton() {

     }

     synchronized public static Singleton getSingleton() {

         if (singleton == null) {

              singleton = new Singleton();

         }

         return singleton;

     }

}

双重检验锁

     // 懒汉式 第二种写法 效率高    双重检验锁

     static public Singleton getSingleton2() {

 

         if (singleton == null) { // 第一步检验锁

              synchronized (Singleton.class) {  // 第二步检验锁

                   if (singleton == null) {

                       singleton = new Singleton();

                   }

 

              }

         }

 

         return singleton;

     }

饿汉式代码

class SingletonTest1 {

       public static void main(String[] args) {

              Singleton1 sl1 = Singleton1.getSingleton();

              Singleton1 sl2 = Singleton1.getSingleton();

              System.out.println((sl1 == sl2)+"-");

       }

}

public class Singleton1 {

       //当class 文件被加载初始化

       private static Singleton1 singleton = new Singleton1();

       private Singleton1() {

       }

       public static Singleton1 getSingleton() {

              return singleton;

       }

 

}

转载于:https://www.cnblogs.com/super-admin/p/9728849.html

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

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

    Python设计模式-单例模式 基于Python3.5.2,代码如下 #coding:utf-8 import threading import timeclass Singleton(object) ...

  2. Android设计模式——单例模式(Singleton)

    二十三种设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元 ...

  3. 【学习笔记】ABAP OOD设计模式 - 单例模式

    ABAP OOD设计模式 - 单例模式 整理转自-<SAP ABAP 面向对象程序设计(原则.模式及实践)> 单例模式(Singleton Pattern)是常用的且较为简单的软件设计模式 ...

  4. Go 语言实现 23 种设计模式 单例模式

    Go 语言实现 23 种设计模式 单例模式 单例模式 单例模式是一种常用的软件设计模式,在使用过程中,单例对象的类只有一个实例.使用单例模式,1 可以节省内存等资源,例如windows操作系统的资源管 ...

  5. java singleton inner class_Java面向对象设计模式-单例模式

    Java面向对象设计模式-单例模式 2020-05-28 589 0 单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点,有多重实现方式. 一.饿汉式单例模式,构造方法私有化,在加载类Sin ...

  6. Java开发中常用的设计模式-单例模式

    单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式. Java开发中常用的设计模式-单例模式 单例模式有3个特点: 单例类只有一个实例对象: 该单例对象必须 ...

  7. 炒冷饭系列:设计模式 单例模式

    2019独角兽企业重金招聘Python工程师标准>>> 炒冷饭系列:设计模式 单例模式 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆 ...

  8. 设计模式-单例模式-注册式单例模式-枚举式单例模式和容器式单例模式在Java中的使用示例

    场景 设计模式-单例模式-饿汉式单例模式.懒汉式单例模式.静态内部类在Java中的使用示例: 设计模式-单例模式-饿汉式单例模式.懒汉式单例模式.静态内部类在Java中的使用示例_霸道流氓气质的博客- ...

  9. 设计模式----创建型设计模式(单例模式、工厂方法模式、构建者模式)

    创建型设计模式 单例模式(Singleton Pattern) 单例模式介绍 代码演示 饿汉式(静态常量) 饿汉式(静态代码块) 懒汉式(线程不安全) 懒汉式(线程安全,同步方法) 懒汉式(线程安全, ...

最新文章

  1. android插件化-apkplug中以监听方式获取OSGI服务-09
  2. redis没有加密码导致服务器被当做矿机了
  3. UI5 Navigation execution entry point
  4. java 前言中不允许有内容_解析xml字符串时报“前言中不允许有内容”错误。
  5. 最清晰细致的教程!一步步教你打造Win7+CentOS双系统
  6. 网络层网络层服务及其 IP 地址
  7. 基于Flink的超大规模在线实时反欺诈系统的建设与实践
  8. 中国互联网安全大会将召开 网络安全再获关注
  9. java递归实现多级菜单栏_Java构建树形菜单以及支持多级菜单的实例代码
  10. java 获取域名_Java获取域名,Java从URL地址中获取域名,Java从Request 获取域名
  11. pythoncontinue函数_Python continue语句
  12. python 朋友圈点赞收费吗_朋友圈点赞会收费吗,人工代刷微信点赞怎么操作
  13. 小程序中集成赞赏功能
  14. python在大数据分析中的应用
  15. 《改变心理学的40项研究》第一章 生物学与人类行为
  16. 亚马逊asin关键词排名追踪_善用亚马逊ABA数据,3步就能将关键词排名冲到首页...
  17. SwiftUI中sheet弹出嵌在NavigationView中的子视图无法用presentationMode关闭(dismiss)弹出视图的解决
  18. Python 在windows上跑图色脚本?简单又好玩,自己编写一个自动化脚本
  19. 【C语言--斐波拉契数列】
  20. Java 学习 - 全文索引 - Lucene

热门文章

  1. NTP And System Clock Maintenance
  2. SOA 服务设计-传统车载架构的迭代升级
  3. 编译内核 解决 Gentoo 在 AUSU P5B SE 板载网卡 无法上网
  4. vue 中 mixins 的使用
  5. 思科和思杰联袂提供全面的桌面虚拟化解决方案
  6. javaSE简单介绍
  7. debian最小化安装
  8. 【Linux命令篇】正则表达式浅析
  9. 曙光服务器主板显示Fd,解析曙光八路服务器A950r-F、I950r-G
  10. 老师计算机组合照说说,生物老师座右铭 教师照片墙格言