Java 设计模式 --- 单例模式
单例模式
一、七种单例模式写法
- 单例模式 : 保证全局过程中只存在一个唯一实例的模式 。
第一种: 饿汉式
- 饿汉式相对于 懒汉式消耗内存的 。
代码
class Task{//在定义这个对象的时候并且给值的形式--- 饿汉式 private static Task t = new Task();//构造函数私有化private Task() {}public static Task getInstanse(){return t; } }
第二种: 饿汉式变种
代码
class Task{private static Task t;static{t = new Task();}public static Task getInstanse(){return t;} }
第三种: 懒汉式
- 相对于饿汉式而言 , 线程不安全
代码
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;} }
第四种 : 懒汉式 线程安全
- 效率低 , 99%的情况下不需要同步
代码:
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;} }
第五种: 静态内部类
- 即使类被加载也不会被实例化 , 只有真正被使用时才会被初始化。
代码:
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;}} }
第六种: 枚举
- 这是一种被提倡的方式 , 不仅能避免多线程安全问题 , 还能防止反序列化重新创建新的对象。
代码:
public enum SingletonDemo{INSTANSE;public void whateverMethod(){} }
第七种: 双重校验锁
- 必须在JDK1.5之后才能看到正常的单例效果
代码:
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 设计模式 --- 单例模式相关推荐
- Java 设计模式 - 单例模式
Java 设计模式 - 单例模式 作者: 霍英俊 [huo920@live.com] 文章目录 Java 设计模式 - 单例模式 单例设计模式介绍 单例设计模式八种方式 饿汉式 - 静态常量 饿汉式( ...
- Java设计模式——单例模式
单例模式 1.什么是单例模式. 2.单例设计的几种实现方式. 2.1.懒汉式 2.2.饿汉式 2.3.登记式 3.总结 4.建议 1.什么是单例模式. 确保某一个类只有一个实例,并且提供一个全局访问点 ...
- Java设计模式——单例模式的七种写法
单例模式(Singleton) 单例模式(Singleton)是一种常用的设计模式.在Java应用中,单例模式能保证在一个JVM中,该对象只有一个实例存在.这样的模式有几个好处: 1.某些类创建比较频 ...
- JAVA设计模式--单例模式
Singleton是一种创建型模式,指某个类采用Singleton模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点. 核心知识点如下: (1) 将采用单例设计模式的类的 ...
- 我的Java设计模式-单例模式
就算不懂设计模式的兄弟姐妹们,想必也听说过单例模式,并且在项目中也会用上.但是,真正理解和熟悉单例模式的人有几个呢?接下来我们一起来学习设计模式中最简单的模式之一--单例模式 一.为什么叫单例模式? ...
- JAVA设计模式 - 单例模式
单例模式(Singleton)是软件设计中一种比较常见的 , 相对简单的设计模式 . 1 . 单例模式的定义 所谓单例 , 指的就是单示例 , 即某个类的实现对象有且仅能有一个 , 并提供对外调用的方 ...
- java设计模式—单例模式
(一)单例模式 java中一共有23种设计模式 : 是开发人员根据不同的代码场景总结出来的不同的实现方法, 归纳为23种代码的设计方法, 单例模式就是其中的一种. 单例模式 : 在整个系统中,一个类 ...
- 【文末抽书】Java设计模式--单例模式
来源 :投稿 | 作者 : gyl-coder|原文:阅读原文 在介绍单例模式之前,我们先了解一下,什么是设计模式? 设计模式(Design Pattern):是一套被反复使用,多数人知晓的,经过分类 ...
- java设计模式---单例模式
关于单例模式的文章,其实网上早就已经泛滥了.但一个小小的单例,里面却是有着许多的变化.网上的文章大多也是提到了其中的一个或几个点,很少有比较全面且脉络清晰的文章,于是,我便萌生了写这篇文章的念头.企图 ...
- JAVA设计模式-单例模式(Singleton)线程安全与效率
一,前言 单例模式详细大家都已经非常熟悉了,在文章单例模式的八种写法比较中,对单例模式的概念以及使用场景都做了很不错的说明.请在阅读本文之前,阅读一下这篇文章,因为本文就是按照这篇文章中的八种单例模式 ...
最新文章
- 第十三届光华工程科技奖名单揭晓!这40位专家和1个团体获奖
- Java 工程师必须掌握的 JVM 类加载机制!
- JS Range 对象的使用
- 利用神经网络 遗传算法求得函数极小极大值
- python构造和析构_python魔法方法 构造和析构实例讲解
- (仿头条APP项目)1.app载入界面相关功能实现
- Linq to sql 消除列重复 去重复
- int、bigint、mediumint、smallint、tinyint的比较
- TCP三次挥手四次握手(面试总结)
- 单片机从00到99c语言,跪求单片机0~99数码管显示用C语言编写的程序
- 成长之路——发现问题、提出问题和解决问题
- 我的世界电脑版服务器区块怎么显示,我的世界区块显示指令 | 手游网游页游攻略大全...
- arcgis10动态地图的制作
- matlab画柱形图
- NCX SQL编程规范
- 互联网江湖之“清华1996级”
- MySQL统计数据库所有表的数据量
- dubbo源码编译和打包
- logit回归模型假设_Logistic回归模型及应用建模(二)
- STC89C52RC 按键控制LED
热门文章
- 编码注释coding: utf-8
- Autofac 设置方法拦截器的两种方式
- bzoj1601: [Usaco2008 Oct]灌水
- JAVA中int、String的类型转换
- Linux对文件内容基本操作(学习笔记七)
- Expression Bland 入门视频(五) 了解对象面板和属性面板
- python字典的常见操作_Python 字典(Dictionary) 基本操作
- css 超出隐藏滚动条_css 之内容溢出滚动,隐藏滚动条(解决火狐浏览隐藏不了滚动条问题)...
- 每日程序C语言32-取一个整数从右端开始的4-7位
- c#窗体程序生成错误_用C#语言做的窗体程序中出错恶劣怎么办?