手写java设计模式之单例模式,附源码解读

devtools/2024/9/25 17:20:01/

在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:

1、减少类的频繁创建,减少使用频繁使用new创建实例,减少GC压力。

2、某些应用场景下,使用单例模式,保证整个系统中只会创建一个类。

单例模式分两种:饿汉模式和懒汉模式:

懒汉模式:

java">//第一次调用时才初始化,避免内存浪费,线程安全
public class LazySingleton {/* 持有私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载 */private static LazySingleton instance = null;/* 私有构造方法,防止被实例化 */private LazySingleton() {}//在第一次创建对象的时候需要加锁,之后就不需要了public static LazySingleton getInstance() {if(null == instance) {synchronized (LazySingleton.class) {if(null == instance) {instance = new LazySingleton();}}}return instance;}}

饿汉模式:

java">public class HungerySingleton {//类加载时就初始化,避免了线程同步的问题,是线程安全的private static HungerySingleton instance = new HungerySingleton();private HungerySingleton(){}public static HungerySingleton getInstance(){return instance;}}

http://www.ppmy.cn/devtools/15349.html

相关文章

Android 记录发布 Maven包 jitPack

使用插件 7.4 与脚本 8.4 虽然是发布成 ,但在AS中引用是查看不到源码 引用中 打开KT类提示 /* platform type */ /* compiled code */Java 类 是能看到源码 脚本 #Tue Mar 05 17:17:17 CST 2024 distributionBaseGRADLE_USER_HOME distributionPathwrapper/dists distributi…

Python 全栈安全(二)

原文:annas-archive.org/md5/712ab41a4ed6036d0e8214d788514d6b 译者:飞龙 协议:CC BY-NC-SA 4.0 第二部分:认证与授权 本书的第二部分是最具商业价值的部分。我这样说是因为它充满了大多数系统需要具备的实用工作流示例&#xf…

C++高级特性:异常概念与处理机制(十四)

1、异常的基本概念 异常:是指在程序运行的过程中发生的一些异常事件(如:除数为0,数组下标越界,栈溢出,访问非法内存等) C的异常机制相比C语言的异常处理: 函数的返回值可以忽略&…

C语言 | Leetcode C语言题解之第47题全排列II

题目: 题解: int* vis;void backtrack(int* nums, int numSize, int** ans, int* ansSize, int idx, int* perm) {if (idx numSize) {int* tmp malloc(sizeof(int) * numSize);memcpy(tmp, perm, sizeof(int) * numSize);ans[(*ansSize)] tmp;return…

【Linux】进程间通信

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、进程为什么要通信? 二、进程间通信目的 三、进程如何通信? 如何让操作系统创建这份资源呢? 三、进程间通信的常见方式…

Windows应急响应流程与思路

什么是应急响应 网络安全应急响应(Network Security Incident Response,又称CSIRT)是指团队或组织为了在网络安全事件发生时能够及时准确地做出反应和应对而建立的一套制度和流程。其目的是降低网络安全事件所造成的损失并迅速恢复受影响的系…

高并发场景中DB和Cache的一致性新的方案感想

拜读了: 美团2面:如何保障 MySQL 和 Redis 数据一致性?这样答,虐爆面试官这篇文章后的感想 高并发场景中数据库和缓存的一致性和可用性的感想 1,先更新缓存,再更新数据库1.1,前提1.2,理由1.2.1&…

分布式-知识体系

分布式系统 本质就是一堆机器的协同,要做的就是用各种手段来让机器的运行达到预期 分布式业务场景 分布式四纵四横说 基于 MSA(微服务架构)的分布式知识体系