单例模式中懒汉式和饿汉式实现
单例模式的代码实现
1.懒汉式代码实现:
public class Singleton {//默认不会实例化,什么时候用就什么时候newprivate static Singleton instance = null;private Singleton(){}public static synchronized Singleton getInstance(){if(instance == null){//什么时候用就什么时候newinstance = new Singleton();}return instance;}
}
2.饿汉式代码实现:
public class Singleton {//一开始类加载的时候就实例化,创建单实例对象private static Singleton instance = new Singleton();private Singleton(){}public static Singleton getInstance(){return instance;}
}
二者的区别:
1.线程安全性
饿汉式在线程还没出现之前就已经实例化了,所以饿汉式一定是线程安全的。懒汉式加载是在使用时才会去new 实例的,那么你去new的时候是一个动态的过程,是放到方法中实现的
2.效率
效率与线程安全性一般成正比
饿汉式没有加任何的锁,因此执行效率比较高。懒汉式一般使用都会加同步锁,效率比饿汉式差。
3.开销
饿汉式在一开始类加载的时候就实例化,无论使用与否,都会实例化,所以会占据空间,浪费内存。懒汉式什么时候用就什么时候实例化,不浪费内存
单例模式中懒汉式和饿汉式实现相关推荐
- 关于Java单例模式中懒汉式和饿汉式的两种类创建方法
一. 什么是单例模式 因程序需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计. 二. 单例模式的特点 1. 单例模式只能有一个实例. 2. 单例类必须创建 ...
- 单例模式中懒汉式和饿汉式的区别区别在哪?
一.单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式.所谓单例就是在系统中只有一个该类的实例,或者说 ...
- 经典案例:单例模式之懒汉式和饿汉式
单例模式之懒汉式和饿汉式 文章目录 单例模式之懒汉式和饿汉式 一.单例模式是什么? 二.几种单例模式 1.懒汉模式 2.饿汉模式 三.懒汉模式和饿汉模式的区别 一.单例模式是什么? 保证整个系统中一个 ...
- java单例模式之懒汉式与饿汉式
首先我们介绍一下单例模式 单例类是只有一个实例对象: 该单例对象必须由单例类自行创建: 单例类对外提供一个访问该单例的全局访问点. 单例模式的优点 单例模式可以保证内存里只有一个实例,减少了内存的开销 ...
- java中的单例模式:懒汉式和饿汉式和静态内部类的书写
饿汉式: public class SingleTon {//1.私有化构造器private SingleTon(){}//2.在类内部创建一个对象private static SingleTon i ...
- 单例模式(懒汉式和饿汉式区别)
单例模式 所谓单例模式,就是保证类在内存中只有一个对象 而如何保证类在内存中只有一个对象? 思考一下,我们平时在实例化类的对象时,基本都是通过new 的方式来实例化一个对象,其实说白了,就是调用了需要 ...
- 单例模式的懒汉式和饿汉式的线程安全问题
单例模式一般有两种形式:懒汉式和饿汉式. 饿汉式是线程安全的,它的基本实现代码如下: public class SingletonTest1 {public static void main(Stri ...
- 单例模式之懒汉式和饿汉式
目录 单例模式 懒汉式和饿汉式 懒汉式: 默认不会实例化,用的时候 new 饿汉式代码实现: 懒汉式和饿汉式区别: 懒汉模式: 饿汉模式: 执行效率上: 性能上: 单例模式 特点 : 只产生一个实例 ...
- 单例模式:懒汉式和饿汉式
所谓单利模式,即只能开启一个线程,只有一个实例,并且能够实现自我实例化,主要分为懒汉式和饿汉式. (1)饿汉式 所谓饿汉式,就好比一个饿汉饿了好久,然后某一天到了餐厅,由于饿了很久,所以进入餐厅就希望 ...
最新文章
- 田志刚:智慧的员工,个人知识管理
- 用Apache的HTACCESS保护密码
- linux系统分配文件夹内存,详解Linux系统内存知识及调优方案
- C语言获取mysql表数据结构_【数据结构】实现顺序表(c语言)
- 【卷积核设计】Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs
- webpack配置说明
- 每日一题:leetcode989.数组形式的整数加法
- 关于onload的事件权柄以及踩过的坑
- MFC关闭对话框可以不析构吗_Win10关闭Defender和防火墙
- iocomp iPlot使用说明4 通道对象
- 期刊会议的论文,sci,ieee,ccf ,acm等等他们之间的关系,以及如何能看到这些高质量文章
- 估值模型不适用_十年十倍!绝对估值法是如何引领巴菲特买入可口可乐的?
- 2018全球50大最佳发明名单
- 联通HG8347R WO-36光猫 当前用户不允许登录解决办法
- 更换CSDN博客皮肤
- Tracup|项目经理必备的极客式项目管理工具
- 如何注册earthdata账号
- (2) [保护模式]段描述符
- idea中摸鱼插件_推荐几款我常用的IDEA插件~网友:妈耶~飞起来咯!
- 掌握这些电脑知识,你可以玩的很无耻
热门文章
- 振动传感开关 震动唤醒功能YTJM-CGQ-16.25vibration sensor参数介绍
- handlebar.js使用
- 吴恩达机器学习1.2机器学习的定义-----详细笔记及心得
- 唯样商城:六种方式教你辨别芯片真伪
- spice客户端android,Compile Android Spice(aSpice)
- 教你创建一个免费的代理IP池(txt存储版本)
- golang 实现nacos获取配置和服务注册-支持集群
- 我在培训机构折腾的经历,再和大家聊聊这个行业| 十年系列
- EBS:PO_HEADERS_ALL
- 记录一下自己编写的”猜拳“小游戏