单例模式(饿汉式-懒汉式)

ops/2024/9/22 22:40:01/

我给面试官讲解了单例模式后,他对我竖起了大拇指!icon-default.png?t=O83Ahttps://blog.csdn.net/weixin_41949328/article/details/107296517?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522FAEE9ABD-432D-416C-98C6-9DD939138DEB%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=FAEE9ABD-432D-416C-98C6-9DD939138DEB&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-107296517-null-null.142^v100^pc_search_result_base4&utm_term=%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F&spm=1018.2226.3001.4187

1.单例模式

1.单:一个
2.例:实例,对象
3.目的:为了让一个类只产生一个对象供外界使用

1.1.饿汉式:

java">public class Singleton {/*** 为了不让外界随意new对象* 我们需要将构造私有*/private Singleton(){}/*由于是饿汉式,迫不及待的让这个对象new出来,所以我们new对象的时候,将其变成静态的而且,单例模式,自己new出来的对象,不能让外界随意直接调用,所以将对象private*/private static Singleton singleton = new Singleton();  //   在本类中定义一个方法,将内部的对象给外界public static Singleton getSingleton(){return singleton;}
}

1.2.懒汉式:

java">public class Singleton1 {/*** 为了不让外界随意new对象* 我们需要将构造私有*/private Singleton1() {}/*由于是懒汉式,不着急new对象,啥时候想用,啥时候new而且,单例模式,自己的对象,不能让外界随意直接调用,所以将对象private*/private static Singleton1 singleton = null;/*在本类中定义一个方法,将内部的对象给外界*/public static Singleton1 getSingleton() {/*外层判断,是决定要不要抢锁*/if (singleton==null){synchronized (Singleton1.class){/*内层判断,是决定要不要new对象*/if (singleton == null) {singleton = new Singleton1();}}}return singleton;}
}


http://www.ppmy.cn/ops/114446.html

相关文章

MySQL 事件调度器用法解析

MySQL 事件调度器用法解析 在日常的数据库运维与开发实践中,自动化执行任务是一项至关重要的需求,它极大地提升了数据库管理的效率和准确性。这些任务可能包括清理不再需要的历史数据以释放存储空间、更新汇总或统计信息以保持数据的新鲜度,…

设计模式中工厂模式的C语言实现

在C语言中实现工厂模式(Factory Pattern)通常需要模拟面向对象的编程方式。工厂模式的核心思想是通过工厂函数来创建不同类型的对象,隐藏对象创建的细节。下面是一个简单的工厂模式在C语言中的实现。 工厂模式示例:几何形状工厂 …

数据库提权【笔记总结】

文章目录 UDF提权以有webshell只有数据库权限条件复现msf工具sql语句提权 MOF提权前言条件复现msf工具php脚本提权 sqlserver提权前言条件xp_cmdshell提权复现 沙盒提权介绍复现 Oracle提权靶场搭建执行任意命令复现 通过注入存储过程提权(低权限提升至DBA&#xff…

ELK 企业级日志分析系统

1、ELK概述 ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 ELK 是 Elasticsearch、Logstash、Kibana 的缩写,这三个工具组合在一…

阿里1688一面总结

首先,面试官进行对业务进行介绍,然后,候选人进行自我介绍。 面试官根据候选人经历进行提问。 候选人针对想了解的事情进行提问。 接下来主要是对面试官的问题进行记录: 在容量管理优化查询逻辑里面,集群及单机信息是…

Vue学习记录之五(组件/生命周期)

一、组件 在每一个.vue文件可以看作是一个组件,组件是可以复用的,每个应用可以看作是一棵嵌套的组件树。 在Vue3中,组件导入以后即可直接使用。 二、组件的生命周期 生命周期就是从诞生(创建)到死亡(销毁) 的过程。 Vue3 组合式API中(se…

【数据结构与算法 | 灵神题单 | 二叉搜索树篇】力扣653

1. 力扣653:两数之和IV - 输入二叉搜索树 1.1 题目: 给定一个二叉搜索树 root 和一个目标结果 k,如果二叉搜索树中存在两个元素且它们的和等于给定的目标结果,则返回 true。 示例 1: 输入: root [5,3,6,2,4,null,7…

Spring Cloud Gateway组件

Spring Cloud Gateway是Spring Cloud生态系统中的一个关键组件,它基于Spring Framework 5、Spring Boot 2和Project Reactor等技 术构建,为微服务架构提供了强大且灵活的网关服务。以下是对Spring Cloud Gateway的详细介绍:一、概述 Spring …