設計模式探索:單例模式

1. 什么是單例模式?

定義: 單例模式是一種創建型設計模式,它確保一個類只有一個實例,并提供一種全局訪問點以訪問該實例。常見的場景包括身份證號碼、政府等需要唯一實例的情況。

單例模式通常用于那些需要在應用程序中僅存在一個實例的情況,例如配置管理器、線程池、數據庫連接池等。通過使用單例模式,可以確保該類的唯一實例在整個應用程序中被共享和使用。

關鍵元素:
在這里插入圖片描述

  1. 私有的構造函數,以防止類的直接實例化。
  2. 私有的靜態成員變量,用于存儲類的唯一實例。
  3. 一個公共的靜態方法,用于返回類的唯一實例。該方法負責創建實例(如果尚未創建)并返回該實例的引用。

2. 餓漢式與懶漢式區別

  1. 初始化時機不同:

    • 餓漢式: 類加載時立即初始化并創建單例對象。
    • 懶漢式: 第一次使用時才會初始化并創建單例對象。
  2. 線程安全性不同:

    • 餓漢式: 類加載時創建單例對象,天生線程安全。
    • 懶漢式: 第一次使用時創建單例對象,需要同步控制來保證線程安全。
  3. 內存占用不同:

    • 餓漢式: 類加載時創建單例對象,占用內存較多。
    • 懶漢式: 第一次使用時創建單例對象,占用內存相對較少。

餓漢式代碼示例:

public class Singleton_01 {private byte[] data1 = new byte[1024*1024];private byte[] data2 = new byte[1024*1024];private byte[] data3 = new byte[1024*1024];private Singleton_01() { }private static Singleton_01 instance = new Singleton_01();public static 

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/40462.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/40462.shtml
英文地址,請注明出處:http://en.pswp.cn/web/40462.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【雷豐陽-谷粒商城 】【分布式高級篇-微服務架構篇】【20】認證服務04—SSO單點登錄

持續學習&持續更新中… 守破離 【雷豐陽-谷粒商城 】【分布式高級篇-微服務架構篇】【20】認證服務04—SSO單點登錄 xxl-sso多系統-單點登錄單點登錄流程原理圖單點登錄流程簡單實現參考 xxl-sso https://gitee.com/xuxueli0323/xxl-sso xxl-sso是開源的一個單點登錄框架 …

智慧交通運行監測與應急指揮中心方案

建設目標 建立感知層數據的實時采集以及數據處理,實現監測預警自動化和智能化;推動交通運輸數據資源開放共享,打破數據資源壁壘,與城市各部門數據建立共享交換機制,實現應急指揮的協同化;充分運用大數據、互…

【免費資料】IEEE33節點系統參數及拓撲圖visio

主要內容 對于初學配電網的同學,最經典的系統即是33節點配電網系統,在各個研究文獻中出現頻次最高的也是這個系統,為了讓大家更好了解33節點系統參數,本次整理了系統節點、支路參數excel以及33節點網絡拓撲圖visio&#xff0c…

阿里云安裝rabbitMQ

1、首先看linux 版本 uname -a如果時centos 7 可以參考其他文檔。我這里是centos 8 這個很重要 。網上全是按centos7 按照。導致我前面一直安裝不上 各種問題。 2、查看rabbitmq 對應 erl 的版本下載 https://www.rabbitmq.com/docs/which-erlang 選擇rabbitmq 3.11.19 選擇…

人大金倉KADB監控工具及問題處理

目錄 1. Kmonitor拆包安裝部署. 3 1.1.環境準備. 3 1.2.拷貝并解壓. 4 1.3.kadb_exporter 4 1.3.1 修改application.yml文件. 4 1.3.2 修改連接池. 5 1.3.3 修改啟動文件(可選) 6 1.4.H2庫. 7 1.4.1進入h2db并修改啟動文件(可選) 7 1.4.2 打開h2庫網址并連接. 8 1.…

國家力推!國家人工智能產業標準化指南

在科技日新月異的今天,人工智能(AI)作為推動社會進步和產業升級的關鍵力量,正以前所未有的速度改變著我們的世界。從自動駕駛到智能制造,從智慧醫療到金融科技,人工智能的觸角已經深入到了經濟社會的各個角…

ElementUI的中國省市區級聯數據插件element-china-area-data

安裝 npm install element-china-area-data -S import 使用 import {provinceAndCityData,pcTextArr,regionData,pcaTextArr,codeToText, } from "element-china-area-data"; provinceAndCityData省市二級聯動數據,漢字+coderegionData省市區三級聯動數據pcTextAr…

合合信息大模型“加速器”亮相2024世界人工智能大會,助力大模型學好“專業課”

7月4日至7日,2024世界人工智能大會在上海拉開帷幕。現階段,“百模大戰”現象背后的中國大模型發展前景與堵點仍然是各界關注的焦點。如何幫助大模型在信息的海洋中快速找準航向,在數據的荒漠中找到高質量的“水源”?合合信息在本次…

多個comfyui之間如何共享模型,節省存儲空間

COMFYUI 模型共享插件教程 一、COMFYUI 模型共享插件教程1.1 插件特性1.2 插件介紹1.3 鏈接 二、詳細配置步驟2.1 開啟開發者選項2.2 放置插件文件2.3 放置配置文件2.4 編輯配置文件2.4.1 其他配置項 三、啟動COMFYUI并驗證3.1 啟動COMFYUI3.2 驗證模型共享3.3 多整合包共享配置…

CTF之unseping

拿到題目看不懂&#xff1f;這是難度1&#xff1f;含淚去看大佬的wp&#xff0c;寫下我的自傳&#xff01; <?php highlig…

云倉酒莊天津分公司:深化業務常態化運營

標題&#xff1a;云倉酒莊天津分公司&#xff1a;深化業務常態化運營&#xff0c;以沙龍為紐帶&#xff0c;構建價值疊加的酒業新生態 在當今復雜多變的經濟環境中&#xff0c;傳統酒業面臨著前所未有的挑戰與機遇。隨著數字化轉型的加速和消費者偏好的日益多元化&#xff0c;…

一鍵直達:2024最新Win10系統安裝包!快來下載!

對于想體驗Win10系統最新功能的用戶來說&#xff0c;尋找可靠的最新系統安裝包是特別重要的。接下來系統之家小編就給大家帶來2024年最新Win10系統安裝包&#xff0c;有需要的小伙伴一鍵點擊就能開始下載。該系統安裝步驟簡單易懂&#xff0c;無需擔心任何裝機經驗。 推薦下載&…

react_web自定義組件_多類型Modal_搜索欄Search

目錄 一、帶輸入框的Modal 二、提示框Modal 三、搜索欄Search 在做項目時引入一些現成的UI組件&#xff0c;但是如果和設計圖沖突太大&#xff0c;更改時很麻煩&#xff0c;如果自己寫一個通用組件其實也就幾十分鐘或者幾個小時&#xff0c;而且更具UI設計更改也比較好更改&…

【Linux進程】進程優先級 Linux 2.6內核進程的調度

前言 進程是資源分配的基本單位, 在OS中存在這很多的進程, 那么就必然存在著資源競爭的問題, 操作系統是如何進行資源分配的? 對于多個進程同時運行, 操作系統又是如何調度達到并發呢? 本文將以Linux kernel 2.6為例 , 向大家介紹進程在操作系統中 (OS) 的調度原理; 1. 進程優…

【網絡安全】第7講 計算機病毒概述(筆記)

一、計算機病毒的簡介 1、名稱的由來 由生物醫學上的 “病毒” 一詞借用而來。 &#xff08;1&#xff09;與生物醫學上“病毒”的異同 同&#xff1a;都具有傳染性、流行性、針對性等。異&#xff1a;不是天生的&#xff0c;而是人為編制的具有特殊功能的程序。 2、病毒的起…

免費代理 IP 如何泄露您的個人信息?

互聯網時代&#xff0c;信息安全和隱私保護成為人們關注的焦點。很多用戶出于各種需要&#xff0c;使用代理服務器瀏覽網頁或進行其他網絡活動&#xff0c;其中免費代理IP因其免費的特點而受到廣泛青睞。然而&#xff0c;免費代理IP并不總是一個安全可靠的選擇&#xff0c;它們…

process.env 管理 Vue 項目的環境變量(Vue項目中環境變量的配置及調用)

簡述&#xff1a;在構建 Vue 應用時&#xff0c;管理配置是開發中的一個重要部分。不同的環境&#xff08;如開發、測試和生產&#xff09;往往需要不同的配置&#xff0c;例如 API、 基礎 URL、第三方服務的密鑰等。使用環境變量可以幫助我們更好地管理這些配置。這里將介紹如…

每天10個js面試題(二)

1.事件輪詢&#xff1f; JavaScript 是單線程的&#xff0c;同一時間只能做一件事。所有任務都需要排隊&#xff0c;前一個任務結束&#xff0c;才會執行后一個任務&#xff0c;為了保證任務有序的執行&#xff0c;事件輪詢就是單線程任務調度的一種方式&#xff0c;單線程任務…

1014-01SF 同軸連接器

型號簡介 1014-01SF是Southwest Microwave的一款2.92 mm 同軸連接器。這款連接器外殼采用鋼CRES 合金 UNS S30300&#xff0c;觸點采用鈹銅 (BeCu)&#xff0c;UNS C17300&#xff0c;并經過金鍍處理&#xff0c;以確保良好的導電性和耐腐蝕性。適用于高頻微波應用&#xff0c;…

如何設計通用用戶、權限、菜單數據表

在設計一個通用的用戶、權限和菜單管理系統時&#xff0c;我們通常需要創建幾個核心的數據庫表來管理用戶信息、角色信息、權限信息以及菜單信息。下面是一個基于SQL的示例&#xff0c;展示了如何建立這些基礎表格。 數據庫表設計 1. 用戶表 (users) Sql 1CREATE TABLE user…