日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java单例模式_Java描述设计模式(01):单例模式

發布時間:2024/10/14 java 71 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java单例模式_Java描述设计模式(01):单例模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文源碼:GitHub·點這里 || GitEE·點這里

一、單例模式

1、概念圖解

單例設計模式定義:確保這個類只有一個實例,并且自動的實例化向系統提供這個對象。

2、樣例代碼

package Singleton稱為單例類,構造函數使用private修飾,確保系統中只能產生一個實例,并且自動生成的。上面代碼也就是所謂的懶漢式加載:只有到使用該對象的時候才來創建,意思餓了才來做飯吃。

二、線程安全問題

在上面的代碼中存在一個很明顯的線程安全問題,當有多條線程來請求對象實例的時候,因為對象的創建是需要時間的,假設A線程進來判斷singleton == null,就會進入對象的創建過程,這時如果同時在過來幾條線程,那么他們都會得到一個對象實例,這個就是所謂的線程安全問題。

1、同步控制方式

package

這樣操作會影響系統性能

2、餓漢式加載

public

這里先把對象創建出來,有需要直接使用;

3、雙重檢查

public

4、枚舉方式

package

三、延遲類初始化

1、基礎概念

1)、類級內部類

簡單點說,類級內部類指的是,有static修飾的成員式內部類。如果沒有static修飾的成員式內部類被稱為對象級內部類。
類級內部類相當于其外部類的static成分,它的對象與外部類對象間不存在依賴關系,因此可直接創建。而對象級內部類的實例,是綁定在外部對象實例中的。
類級內部類中,可以定義靜態的方法。在靜態方法中只能夠引用外部類中的靜態成員方法或者成員變量。
類級內部類相當于其外部類的成員,只有在第一次被使用的時候才被會裝載。

2)、多線程缺省同步鎖

在多線程開發中,為了解決并發問題,主要是通過使用synchronized來加互斥鎖進行同步控制。但是在某些情況中,JVM已經隱含地執行了同步,這些情況下就不用自己再來進行同步控制了。這些情況包括:1.由靜態初始化器(在靜態字段上或static{}塊中的初始化器)初始化數據時 2.訪問final字段時 3.在創建線程之前創建對象時 4.線程可以看見它將要處理的對象時

2、實現方式

要想很簡單地實現線程安全,可以采用靜態初始化器的方式,它可以由JVM來保證線程的安全性。比如前面的餓漢式實現方式,在類裝載的時候就初始化對象,不管是否需要,存在一定的空間浪費。
一種可行的方式就是采用類級內部類,在這個類級內部類里面去創建對象實例。這樣一來,只要不使用到這個類級內部類,那就不會創建對象實例,從而同時實現延遲加載和線程安全。public

四、JDK源碼單例模式

Runtime單例實現源碼。

1、案例演示

/**

2、源代碼分析

public

基于餓漢模式實現的單例模式。

五、Spring框架中應用

1、創建測試類

public

2、Spring配置文件

<!-- 單例Bean -->

3、測試讀取Bean對象

package

結論

Spring單例模式與純粹的單例設計模式的主要區別

盡管使用相同的類加載器來加載兩個應用程序上下文,但是UserBean的實例是不一樣的。也就是Spring框架中的單例對象是基于應用程序中。

六、單例模式總結

1、注意事項

單例模式注意事項和細節說明

1) 單例模式保證了 系統內存中該類只存在一個對象,節省了系統資源,對于一些需要頻繁創建銷毀的對象,使用單例模式可以提高系統性能。
2) 當想實例化一個單例類的時候,必須要記住使用相應的獲取對象的方法,而不是使用new Object() 的方式。
3) 單例模式使用的場景:需要頻繁的進行創建和銷毀的對象、創建對象時耗時過多或耗費資源過多(即:重量級對象),但又經常用到的對象。

2、優缺點

優點: 1、單例模式只會創建一個對象實例,減少內存消耗 2、設置全局訪問點,優化共享資源的訪問 缺點: 1、沒有接口,很難擴展 2、不利于測試 3、與單一職責原則沖突

七、源代碼地址

GitHub·地址 https://github.com/cicadasmile/model-arithmetic-parent GitEE·地址 https://gitee.com/cicadasmile/model-arithmetic-parent

總結

以上是生活随笔為你收集整理的java单例模式_Java描述设计模式(01):单例模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: jizz日本在线 | 日韩亚洲一区二区 | 亚洲自拍偷拍图 | 可以免费在线观看的av | 人人艹人人 | 国产日产久久高清欧美一区 | www国产| 无码精品人妻一区二区三区影院 | 99精品欧美一区二区三区综合在线 | 在线播放91灌醉迷j高跟美女 | 清冷男神被c的合不拢腿男男 | 偷拍老头老太高潮抽搐 | 男女做爰真人视频直播 | 国产精品资源网站 | 久草福利资源 | av导航网| 国产区精品视频 | 51国产偷自视频区视频 | 日韩永久免费 | 日韩精品在线观看一区二区三区 | 蜜臀久久99精品久久久 | 色香色香欲天天天影视综合网 | 北条麻纪在线观看aⅴ | 狼性av懂色av禁果av | 少妇精品一区二区 | 林天顾悦瑶笔趣阁 | 在线综合av | 古装做爰无遮挡三级视频 | 中文字幕无码毛片免费看 | 天天操天天舔天天干 | 日韩三级网 | 色婷婷av一区二区三区麻豆综合 | 黄网站色视频 | 久久国产精品久久久久 | 中文在线一区 | 91亚洲精品在线 | 伊人网在线观看 | 婷婷久久久久 | 久艹伊人 | 欧美三级一区二区三区 | 一区二区三区四区免费视频 | 欧美 日韩 中文字幕 | 懂色av中文字幕 | 伊人二区 | youjizzxxx69| 国产又粗又猛又色 | 黄视频网站在线观看 | 一区二区精品视频在线观看 | 亚洲福利精品视频 | 91丨porny丨尤物| 日韩欧美一区二区免费 | 美日韩在线 | 亚洲一区二区视频在线 | 久久久影视 | 欧洲精品免费一区二区三区 | 久草视频播放 | 精品乱码一区二区三区 | 久久久久久999 | 毛片毛片毛片毛片毛片毛片毛片 | 日日射夜夜操 | 91性高潮久久久久久久久 | 超碰蜜臀 | 亚洲一区二区蜜桃 | 日本黄色免费视频 | 亚洲综合影院 | 久久国产精品久久久久 | 亚洲性生活网站 | 婷婷久久一区 | 国产精品久久成人 | 久久大胆人体 | 狠狠操在线播放 | 亚洲国产精品成人综合 | 精产国品一二三区 | 日韩欧美在线免费观看 | 亚洲欧美电影 | 午夜亚洲aⅴ无码高潮片苍井空 | 精品国产乱码久久久久夜深人妻 | 操综合网 | av青草| 涩久久| 欧美日韩123 | 国产精品麻豆一区二区三区 | 国产精品伦一区二区三区免费看 | 日韩久草 | 国产一区二区三区三州 | 欧美精品在线看 | 青青久视频 | 高清亚洲| 亚洲丝袜视频 | 日韩在线毛片 | 亚洲AV成人无码电影在线观看 | 亚洲在线精品视频 | 激情四射婷婷 | 日本熟妇浓毛 | 亚洲综合一区在线 | 进去里视频在线观看 | 日本在线一区二区三区 | 精品伦精品一区二区三区视频密桃 | 美女黄18以下禁止观看 |