当前位置: 首页 > news >正文

Java中单例模式

什么是单例模式?

1. 构造方法私有化
2. 静态属性指向实例
3. public static的 getInstance方法,返回第二步的静态属性

饿汉式是立即加载的方式,无论是否会用到这个对象,都会加载。

package charactor;public class GiantDragon {//私有化构造方法使得该类无法在外部通过new 进行实例化private GiantDragon(){}//准备一个类属性,指向一个实例化对象。 因为是类属性,所以只有一个private static GiantDragon instance = new GiantDragon();//public static 方法,提供给调用者获取12行定义的对象public static GiantDragon getInstance(){return instance;}}


package charactor;public class TestGiantDragon {public static void main(String[] args) {//通过new实例化会报错
//		GiantDragon g = new GiantDragon();//只能通过getInstance得到对象GiantDragon g1 = GiantDragon.getInstance();GiantDragon g2 = GiantDragon.getInstance();GiantDragon g3 = GiantDragon.getInstance();//都是同一个对象System.out.println(g1==g2);System.out.println(g1==g3);}
}

 懒汉式单例模式与饿汉式单例模式不同,只有在调用getInstance的时候,才会创建实例

package charactor;public class GiantDragon {//私有化构造方法使得该类无法在外部通过new 进行实例化private GiantDragon(){        }//准备一个类属性,用于指向一个实例化对象,但是暂时指向nullprivate static GiantDragon instance;//public static 方法,返回实例对象public static GiantDragon getInstance(){//第一次访问的时候,发现instance没有指向任何对象,这时实例化一个对象if(instance == null){instance = new GiantDragon();}//返回 instance指向的对象return instance;}}

相关文章:

  • Echarts柱状体实现滚动条动态滚动
  • Spring源码系列-框架中的设计模式
  • [工业自动化-11]:西门子S7-15xxx编程 - PLC从站 - 分布式IO从站/从机
  • 【C++笔记】优先级队列priority_queue的模拟实现
  • 原型模式(创建型)
  • 解析html生成Word文档
  • 总结:利用原生JDK封装工具类,解析properties配置文件以及MF清单文件
  • 七个优秀微服务跟踪工具
  • 微服务-开篇-个人对微服务的理解
  • 【Springboot】基于注解式开发Springboot-Vue3整合Mybatis-plus实现分页查询
  • 每次重启完IDEA,application.properties文件里的中文变成?
  • Flink 基础 -- 应用开发(Table API SQL) 概念和通用API
  • Linux驱动开发——USB设备驱动
  • 从windows iso文件中提取install.wim
  • 从零开始搭建微服务(二)
  • [LeetCode] Wiggle Sort
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • ES6语法详解(一)
  • JavaScript新鲜事·第5期
  • Js基础知识(四) - js运行原理与机制
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • orm2 中文文档 3.1 模型属性
  • PHP的Ev教程三(Periodic watcher)
  • Promise初体验
  • React-生命周期杂记
  • ViewService——一种保证客户端与服务端同步的方法
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 区块链技术特点之去中心化特性
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 一个JAVA程序员成长之路分享
  • 正则表达式
  • 转载:[译] 内容加速黑科技趣谈
  • 湖北分布式智能数据采集方法有哪些?
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #图像处理
  • (AngularJS)Angular 控制器之间通信初探
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (规划)24届春招和25届暑假实习路线准备规划
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .Net 6.0 处理跨域的方式
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET Core 中插件式开发实现
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .net 流——流的类型体系简单介绍
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • ::什么意思
  • @Autowired 与@Resource的区别
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • [20171113]修改表结构删除列相关问题4.txt