zbb20180930 设计模式-单例模式
单例模式
什么是单例模式?
单例保证一个对象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 设计模式-单例模式相关推荐
- Python设计模式-单例模式
Python设计模式-单例模式 基于Python3.5.2,代码如下 #coding:utf-8 import threading import timeclass Singleton(object) ...
- Android设计模式——单例模式(Singleton)
二十三种设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元 ...
- 【学习笔记】ABAP OOD设计模式 - 单例模式
ABAP OOD设计模式 - 单例模式 整理转自-<SAP ABAP 面向对象程序设计(原则.模式及实践)> 单例模式(Singleton Pattern)是常用的且较为简单的软件设计模式 ...
- Go 语言实现 23 种设计模式 单例模式
Go 语言实现 23 种设计模式 单例模式 单例模式 单例模式是一种常用的软件设计模式,在使用过程中,单例对象的类只有一个实例.使用单例模式,1 可以节省内存等资源,例如windows操作系统的资源管 ...
- java singleton inner class_Java面向对象设计模式-单例模式
Java面向对象设计模式-单例模式 2020-05-28 589 0 单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点,有多重实现方式. 一.饿汉式单例模式,构造方法私有化,在加载类Sin ...
- Java开发中常用的设计模式-单例模式
单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式. Java开发中常用的设计模式-单例模式 单例模式有3个特点: 单例类只有一个实例对象: 该单例对象必须 ...
- 炒冷饭系列:设计模式 单例模式
2019独角兽企业重金招聘Python工程师标准>>> 炒冷饭系列:设计模式 单例模式 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆 ...
- 设计模式-单例模式-注册式单例模式-枚举式单例模式和容器式单例模式在Java中的使用示例
场景 设计模式-单例模式-饿汉式单例模式.懒汉式单例模式.静态内部类在Java中的使用示例: 设计模式-单例模式-饿汉式单例模式.懒汉式单例模式.静态内部类在Java中的使用示例_霸道流氓气质的博客- ...
- 设计模式----创建型设计模式(单例模式、工厂方法模式、构建者模式)
创建型设计模式 单例模式(Singleton Pattern) 单例模式介绍 代码演示 饿汉式(静态常量) 饿汉式(静态代码块) 懒汉式(线程不安全) 懒汉式(线程安全,同步方法) 懒汉式(线程安全, ...
最新文章
- android插件化-apkplug中以监听方式获取OSGI服务-09
- redis没有加密码导致服务器被当做矿机了
- UI5 Navigation execution entry point
- java 前言中不允许有内容_解析xml字符串时报“前言中不允许有内容”错误。
- 最清晰细致的教程!一步步教你打造Win7+CentOS双系统
- 网络层网络层服务及其 IP 地址
- 基于Flink的超大规模在线实时反欺诈系统的建设与实践
- 中国互联网安全大会将召开 网络安全再获关注
- java递归实现多级菜单栏_Java构建树形菜单以及支持多级菜单的实例代码
- java 获取域名_Java获取域名,Java从URL地址中获取域名,Java从Request 获取域名
- pythoncontinue函数_Python continue语句
- python 朋友圈点赞收费吗_朋友圈点赞会收费吗,人工代刷微信点赞怎么操作
- 小程序中集成赞赏功能
- python在大数据分析中的应用
- 《改变心理学的40项研究》第一章 生物学与人类行为
- 亚马逊asin关键词排名追踪_善用亚马逊ABA数据,3步就能将关键词排名冲到首页...
- SwiftUI中sheet弹出嵌在NavigationView中的子视图无法用presentationMode关闭(dismiss)弹出视图的解决
- Python 在windows上跑图色脚本?简单又好玩,自己编写一个自动化脚本
- 【C语言--斐波拉契数列】
- Java 学习 - 全文索引 - Lucene