餓漢懶漢單例設計模式的使用及區別、java中的import關鍵字

在這里插入圖片描述

??各位小伙伴們大家好,歡迎來到這個小扎扎的《Java核心技術 卷Ⅰ》筆記專欄,在這個系列專欄中我將記錄淺學這本書所得收獲,鑒于 看到就是學到、學到就是賺到 精神,這波簡直就是血賺

💡涉及的知識點速通

  • 🛫 關于包你都知道什么?
    • 🪂 包名該如何定義?
    • 🪂 什么是無名包?
    • 🪂 關于import關鍵字應該知道什么?
  • 🛫 什么是單例設計模式?
    • 🪂 餓漢式單例模式
    • 🪂 懶漢式單例模式
    • 🪂 兩種模式的區別

🛫 關于包你都知道什么?

🪂 包名該如何定義?

??為什么要引用包的概念呢?使用包的最主要的原因就是為了保證類名的唯一性,因為使用到類的時候會帶上它的包名,一個包中又不會存在一個簽名一樣的方法,方法簽名的概念參考這篇博客的方法重寫與重載問題部分。

??一般來說,包的命名方式都是采用因特網域名的逆序形式,因為因特網的域名肯定是唯一的。比如說:域名為horstmann.com可以將其包名命名為com.horstman,再追加上工程名為com.horstman.bean,如果再加上類名為com.horstman.bean.Employee,這就組成了這個Employee類的完全限定名

??還有在認知上比較重要的一點就是,從編譯器的角度上來看,嵌套的包與包之間并沒有任何的關系,每一個包都是獨立的一些類的集合。例如java.util包和java.util.jar包之間就毫無關系

🪂 什么是無名包?

??說完包的命名,我們來說一說該如何將一個類放在指定的包中,在源文件的第一行使用package語句指定類所在的包位置,這一步基本上所有的IDE工具在創建類的時候都會自動生成(所以我們就關注的很少)
??如果不使用package指定包位置的話,這個類就直屬于無名包,無名包是最上層的包結構,不使用package指定的類指定的類直屬于無名包,其他的類在無名包下的指定包目錄下間接屬于無名包在這里插入圖片描述

🪂 關于import關鍵字應該知道什么?

??一個類可以使用它所屬包中的所有類,以及其他包里的public類,這里的使用指的是,通過實例化對象或者類名調用等方式操作類中的屬性。使用其他包里的public類的方式一共有兩種,一種就是使用該類的全限定名,另外一種就是import在這里插入圖片描述??如果需要使用到這個包里的很多類的話,不必一個類一個類的import,可以使用通配符 * 實現在這里插入圖片描述??正如我們所知,Java的核心類庫中存在很多的命名相同的類,如果你import的兩個包中存在名稱相同的類,此時使用這個類會用到哪個?如果這兩個包中的同名類都需要使用的話又該怎么辦?在這里插入圖片描述??import除了可以導類之外還可以具體到類中的靜態屬性,使用import導入類中的static方法字段之后就可以直接使用該靜態屬性,而無需使用類名調用在這里插入圖片描述

🛫 什么是單例設計模式?

??所謂類的單例設計模式,就是采取一定的方法保證在這整個系統中一個類只能存在一個實例對象,而且該類中只提供一個獲得它的實例對象的方法。想要完成以上的構想,首先就必須將類構造器的訪問權限設置為private防止隨意在類的外部通過new創建實例對象,類外部無法創建實例對象所以只能通過類內部的靜態方法,所以在類內部使用靜態方法創建并返回該類的對象,由于靜態方法內部只能訪問靜態資源,所以該類對應的對象變量也要定義為靜態的

單例設計模式也為兩種,餓漢式和懶漢式

🪂 餓漢式單例模式

??所謂的餓漢式就像是一個饑餓的人的心態一樣,他想一到家就已經有人做好了飯可以直接吃。對應到Java就是提前創建好該類的實例對象,使用類調動靜態方法的時候直接返回這個已經創建好的對象,所以說使用這種靜態方法創建的對象是同一個,使用==判斷地址一致在這里插入圖片描述

🪂 懶漢式單例模式

??所謂的懶漢式就像是一個懶惰的人一樣,等到他餓的時候才去看自己有沒有做飯,有過有的話就直接吃,沒有的話就做完再吃。對應到代碼實現就是,在靜態方法中判斷實例對象變量是否為null,null的話就new個對象返回,不為null的話直接返回在這里插入圖片描述

🪂 兩種模式的區別

??所謂的餓漢式和懶漢式的區別就是創建對象的時間不同,餓漢式是類加載的時候就創建好調用就返回,懶漢式則是在靜態方法內部判斷后創建并返回。于是帶來第一個不同點:餓漢模式在類加載的時候就會創建對象,這樣的話就會長時間加載對象導致內存資源的耗費;而懶漢模式只有在調用靜態方法的時候才會創建對象,這樣的話就會延遲創建對象性能就可以得到提高
??但是懶漢模式也并不是都是好處,因為懶漢式涉及到了一個判斷的過程,于是就導致它在多線程并發的環境下會出現安全問題,而餓漢模式是線程安全的。如果想要保證懶漢模式的線程安全,可以在getInstance方法的聲明上加synchronize關鍵字,鎖住方法體使之安全

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

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

相關文章

廣電運通不好進嗎_我可以說鄭州新風的安裝大部分都是垃圾嗎?

說鄭州的新風安裝都是垃圾,這話很無禮,很自大,很傲慢,但是我能說確實是這樣嘛?其實包括我以前安裝的也不合格——雖然我不是故意的。這幾年見過許多家同行安裝的新風,可以說目前見到的很多家都不合格&#…

Java迭代器和Collection接口

各位小伙伴們大家好,歡迎來到這個小扎扎的《Java核心技術 卷Ⅰ》筆記專欄,在這個系列專欄中我將記錄淺學這本書所得收獲,鑒于 看到就是學到、學到就是賺到 精神,這波簡直就是血賺 💡涉及的知識點速通🛫 關于…

atlas安裝需要kafka嗎_Atlas 2.1.0 實踐(2)—— 安裝Atlas

在完成Atlas編譯以后,就可以進行Atlas的安裝了。Atlas的安裝主要是安裝Atlas的Server端,也就Atlas的管理頁面,并確保Atlas與Kafka Hbase Solr等組件的集成。Atlas的系統架構如下,在確保 底層在完成Atlas編譯以后,就可以…

ue4中隱藏燈光和相機圖標_[HDRP]物理燈光是什么?科普向

HDRP拋棄了Bulitin的燈光,改用物理單位以及物理屬性。那么物理燈光到底是什么?請點贊評論來支持作者,提前祝大家新年快樂。https://connect.unity.com/p/hdrp-wu-li-deng-guang-shi-shi-yao-ke-pu-xiang?connect.unity.com同步更新unity con…

私鑰經過哈希計算可以產生公鑰_「區塊鏈基礎概念100」:公鑰和私鑰 | 027

免責聲明:本文旨在傳遞更多市場信息,不構成任何投資建議。文章僅代表作者觀點,不代表火星財經官方立場。小編:記得關注哦投資區塊鏈,猛戳:火星財經App下載來源:學習區塊鏈原文標題:「…

關于List集合類ArrayList、LinkedList、Vector詳解

各位小伙伴們大家好,歡迎來到這個小扎扎的《Java核心技術 卷Ⅰ》筆記專欄,在這個系列專欄中我將記錄淺學這本書所得收獲,鑒于 看到就是學到、學到就是賺到 精神,這波簡直就是血賺 💡涉及的知識點速通🛫 關于…

1562a檢測軟件_洛達1562a空間音頻版評測!!!

哈嘍大家好!這里是小澤,一個不專業的Beatboxer~~~今天給大家帶來一期HQB最新空間音頻版洛達1562a耳機的評測視頻,建議先贊再看!(滑稽)聽說你不點贊?昨晚拍了一晚,但是因為是第一次搞…

python 趣味編程課_青少年編程:Python趣味編程基礎入門課程

課程目錄 章節1:編程課前說明試看 課時1 編程課前說明07:49可試看 章節2:第一章 Python基礎-認識環境試看 課時2 1、什么是計算機程序和編程?08:48可試看 課時3 2、為什么學習編程?03:10可試看 課時4 3、Python的安裝11:48可試看 課時5 4、用Python編寫第…

shell181網格劃分_ANSYS中Shell181單元介紹誰知道

再畢業設計做模型中要應用到SHELL181單元,那么這個單元有什么好處誰能具體的告訴我下,我有英文但是有的地方翻譯不通。或者誰能幫我翻譯一下~謝謝~SHELL181issuitableforanalyzingth...再畢業設計做模型中要應用到SHELL181單元,那么這個單元有…

關于Set集合類你都知道什么?來自《卷Ⅰ》的靈魂提問

各位小伙伴們大家好,歡迎來到這個小扎扎的《Java核心技術 卷Ⅰ》筆記專欄,在這個系列專欄中我將記錄淺學這本書所得收獲,鑒于 看到就是學到、學到就是賺到 精神,這波簡直就是血賺 💡涉及的知識點速通🛫 關于…

流程圖虛線框表示什么_UI設計|APP的交互線框布局設計

一.流程圖設計流程圖(Flow Chart):用圖示的方式反映出特定主體為了滿足特定需求而進行的有特定邏輯關系的一系列操作過程。流程圖的四種基本結構:順序結構,條件結構(又稱選擇結構),循環結構,分支結構。1.流程圖的常用符…

使用Redis完成商品秒殺業務

各位小伙伴們大家好,歡迎來到這個小扎扎的Redis 6專欄,在這個系列專欄中我對B站黑馬的Redis教程進行一個總結,鑒于 看到就是學到、學到就是賺到 精神,這波依然是血賺 ┗|`O′|┛ 💡Redis知識點速覽&#…

表格列隱藏_【excel每日提升】Excel隱藏列,不讓別人打開!

【新朋友】點擊標題下面藍色字“王俊東“關注。 【老朋友】點擊右上角,轉發或分享本頁面內容。excel系列課程excel特效系列課程開始了,今天第2節!第1節:Excel有公式的單元格標記顏色,很簡單!第2節&#xf…

map與weakmap,ES6 Map和WeakMap有什么區別?

Looking this and this MDN pages it seems like the only difference between Maps and WeakMaps is a missing "size" property for WeakMaps. But is this true? Whats the difference between them?解決方案The experienced JavaScript programmer will notice…

“畢業季”|一個java開發實習生的OFFER之路

哈嘍哈嘍大家好,這里是小扎扎的博客。相信有關注過我的好盆友們可能會發現我已經有一段時間沒有出來劃水了,那么這段時間小扎扎都在干什么呢?沒錯!我確實是去找實習了!接下來就給大家介紹一下本次戰役的戰況如何 活動地…

virtualbox 該內存不能為written_系統提示“該內存不能為read”的原因和解決辦法...

我們單位的電腦經常顯示這個對話框,已經有好幾年了,單位的老頭們都不怎么懂電腦,我本人也不愛管閑事。但是出現這種對話框的原因是什么呢?又怎么解決呢?一般電腦經常出現藍屏和死機,而且頻繁出現。有時會出…

插件properties_Mybatis3系列 - 4. mybatis-config的properties屬性詳解

前兩章簡單的講解了MyBatis的使用方式. 接下來先全局的說一下MyBatis的全局的xml配置詳細說明.XML格式定義-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">configuration 的映射文件(根據定義順序說明)properties 屬性…

【Redis 6】秒殺業務——分布式鎖

各位小伙伴們大家好,歡迎來到這個小扎扎的Redis 6專欄,在這個系列專欄中我對B站黑馬的Redis教程進行一個總結,鑒于 看到就是學到、學到就是賺到 精神,這波依然是血賺 ┗|`O′|┛ 💡Redis知識點速覽&#…

python讀取文件最后幾行_如何用python獲取文件的最后一行,文件可能會比較大

展開全部 #!/usr/bin/env python import os import sys def get_last_n_lines(logfile, n): blk_size_max 4096 n_lines [] with open(logfile, rb) as fp: fp.seek(0, os.SEEK_END) cur_pos fp.tell() while cur_pos > 0 and len(n_lines) < n: blk_size min(blk_si…

360oauth token是什么意思_Oauth/access token

oauth/access_token第三放應用使用開始的request_token來換取用戶授權過的Access_tokenURL格式標準的OAuth http返回格式HTTP請求方式POST請求數限制false請求參數oauth_consumer_key: 創建應用時生成的APP KEY。oauth_token:經過用戶授權的Request Token。oauth_signature_met…