单例设计模式懒汉式和恶汉式
一,单例设计模式懒汉式和恶汉式
懒汉式在类加载时不初始化,延迟加载。(配置文件)
饿汉式在类加载时初始化,加载慢,获取对象快。
饿汉式是线程安全的,
懒汉式需要加synchronized,否则不安全。
二,饿汉式
1 public class Singletonehan { 2 private static Singletonehan singleton=new Singletonehan(); 3 private Singletonehan() { 4 } 5 public static Singletonehan getInstance(){ 6 return singleton; 7 } 8 9 @Override 10 public String toString() { 11 return "Singletonehan{}"; 12 } 13 }
测试
1 public class testehan { 2 public static void main(String[] args) { 3 Singletonehan singletonehan = Singletonehan.getInstance(); 4 System.out.println(singletonehan); 5 } 6 }
三,懒汉式
1 public class Singletonlanhan { 2 // private static Singletonlanhan singleton=new Singletonlanhan(); 3 private static Singletonlanhan singleton=null; 4 5 private Singletonlanhan() { 6 } 7 8 public static Singletonlanhan getInstance() { 9 if (singleton == null) { 10 singleton = new Singletonlanhan(); 11 } 12 return singleton; 13 } 14 15 @Override 16 public String toString() { 17 return "Singletonlanhan{}"; 18 } 19 }
测试
1 public class test { 2 public static void main(String[] args) { 3 Singletonlanhan singletonlanhan = Singletonlanhan.getInstance(); 4 System.out.println(singletonlanhan); 5 } 6 }
结果
Singletonlanhan{}Process finished with exit code 0
补充加synchronized后的懒汉
1 public class Singletonlanhan { 2 // private static Singletonlanhan singleton=new Singletonlanhan(); 3 private static Singletonlanhan singleton=null; 4 5 private Singletonlanhan() { 6 } 7 8 public synchronized static Singletonlanhan getInstance() { 9 if (singleton == null) { 10 singleton = new Singletonlanhan(); 11 } 12 return singleton; 13 } 14 15 @Override 16 public String toString() { 17 return "锁Singletonlanhan{}"; 18 } 19 }
结果
锁Singletonlanhan{}Process finished with exit code 0
转载于:https://www.cnblogs.com/fengtangjiang/p/11106102.html
单例设计模式懒汉式和恶汉式相关推荐
- 23种设计模式:单例设计模式(饿汉式 VS 懒汉式)
23种设计模式:单例设计模式(饿汉式 VS 懒汉式) 每博一文案 世事浮沉,有太多的责任需要我们担当,生活中总有些挫折和磨难,让我们觉得快要杠不住了. 但当我们咬牙坚持过那段难熬的时光后,发现并没有想 ...
- C++常用设计模式:单例设计模式(饿汉式、懒汉式)
一.单例模式的设计套路: 思考:如何绕过常规的构造函数,提供一种机制来保证一个类只有一个实例. 1. 铺垫:静态成员函数特性的总结 使用static关键字修饰类成员函数时,就是把这个成员函数升级成了全 ...
- 单例设计模式(饿汉式VS懒汉式)
什么是单例模式 单例(单个的实例) 1.所谓单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法 2.单例设计模式有两种方式:饿 ...
- Java面试常考之 单例设计模式(饿汉式单例、 懒汉式单例)
所谓的单例设计指的是一个类只允许产生一个实例化对象. 对于单例设计模式也有两类形式:懒汉式.饿汉式. 饿汉式单例思想: 单例模式:表示任何类的对象有且只有一个. 首先控制对象的产生数量:将构造方法私有 ...
- JAVA_Lesson8(传智播客笔记之继承、单例设计模式懒汉式、饿汉式)
数组对象工具的建立(重要的是这种思想) 主函数是静态的,主函数需要调用的也需要static. 当有2个.java文件时,先编译含有函数功能的.java文件,再编译含主函数的.java文件.(因为主函数 ...
- 26、Java 简单实现单例设计模式(饿汉式和懒汉式)
文章目录 一.概念 二.饿汉式 三.懒汉式 一.概念 ✏️[Singleton Pattern]如果一个类被设计成单例设计模式,则在整个应用程序运行过程中,该类只能存在一个实例. 二.饿汉式 思考:如 ...
- 设计模式之单例设计模式(懒汉式)
package july.star.thread22; /*** Teacher* 饿汉式:类一加载就加载* 懒汉式:需要时才加载* 面试题:单例模式的思想是什么,请用代码体现.* 开发:饿汉式(不会 ...
- 单例设计模式-懒汉式(线程安全)
懒汉式(线程安全) 有缺点说明 解决了线程不安全问题 效率太低了,每个线程在想获得类的实例时候,执行getInstance()方法都要进行同步.而其实这个方法只执行了一次实例化代码就够了,后面的想获取 ...
- 单例设计模式-懒汉式(线程不安全)
懒汉式(线程不安全) 优缺点说明 起到了Lazy Loading的效果,但是只能在单线程下使用 如果在多线程下, 一个线程进入if(singleton == null)判断 语句块,还未来得及往下执行 ...
最新文章
- 在ubuntu 14.04 64bit下配置安装PyQt4(python2.7和python3.4)
- 面对这么多困境,梅耶尔还能怎么应对?
- 自动文本摘要(automatic text summarization)目前的研究方法分类
- Something about Giraffe (II)
- 特斯拉股价暴跌,疯狂烧钱是否真的能够带来高额回报?
- Enter passphrase for key '/home/mha/.ssh/id_rsa解决方法
- [NOIP]数字三角形
- macbook怎么改编码_如何设置新的MacBook进行编码
- textarea选中行删除_Easy Data Transform如何在Excel中删除重复的行?
- java使用DES加密方式,实现对数据的加密解密
- 从狗屁不通文章生成器,到机器写作之路
- php采标教程,国内液压与气动行业标准大全
- 智能蓝牙技术原理及设计方案集锦
- 通过js实现单击显示隐藏图片
- mac鼠须管 在简体字模式如何繁体字
- [mit6.1810] Lab system calls
- 【转载】大型医疗器械辐射发射的检测方法
- C# 8.0核心技术指南
- 听说reStructuredText不错
- 如何写网站策划书(即网站建设方案)?
热门文章
- python剔除最小值_从同一行cod的列表中删除最小值和最大值
- for..in与for..of的区别
- ?lower_case
- [转]固定资产减值准备的会计及税务处理
- 斯坦福计算机音乐专业,斯坦福大学以计算机为基础的音乐理论和声学文学硕士研究生申请要求及申请材料要求清单...
- 常用的八大排序算法时间复杂度和空间复杂度比较
- 记录一次自己的电脑磁盘占用率100%的遭遇
- C++基于优先队列建立链式哈夫曼树并求哈夫曼编码及WPL
- [转载] 教你如何迅速秒杀掉:99%的海量数据处理面试题
- 微信小程序常识——只需4个文件即可构成一个完整的微信小程序项目