java的單例模式是什么?這篇文章運(yùn)用了實(shí)例代碼展示,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
在平川等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),網(wǎng)絡(luò)營銷推廣,成都外貿(mào)網(wǎng)站制作,平川網(wǎng)站建設(shè)費(fèi)用合理。
單例模式可以說是最常用的設(shè)計(jì)模式之一,其主要作用就是保證一個(gè)類只有一個(gè)實(shí)例,并且提供一個(gè)訪問它的全局訪問點(diǎn),嚴(yán)格的控制用戶的訪問方式。
單例模式又分為懶漢模式和餓漢模式,首先說一下餓漢模式:
餓漢模式
餓漢模式有點(diǎn)饑不擇食的意思,就像一個(gè)人餓了很久,所以只要有人給東西他就吃而不考慮東西好不好吃,自己能不能吃得了。代碼如下:
public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){} public static Singleton getInstance() { return instance; } }
意思大家都懂,就是一種靜態(tài)初始化的方法,只要類一加載就實(shí)例化對象,優(yōu)點(diǎn)就是線程安全,缺點(diǎn)就是提前占用系統(tǒng)資源。這時(shí)候就出現(xiàn)了懶漢模式:
懶漢模式
對比餓漢模式的饑不擇食,懶漢模式的意思就是飯送到嘴邊才吃,否則再餓也不會(huì)動(dòng)嘴。代碼如下:
public class Singleton{ private static Singleton instance; private Singleton(){} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }
然而在多線程同時(shí)調(diào)用getInstance()方法時(shí),會(huì)有可能創(chuàng)建多個(gè)實(shí)例,所以這一版線程是不安全的,于是又有了下面這一版:
public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance == null) { synchronized (Singleton .class) { if (instance == null) { instance = new Singleton (); } } } return instance; } }
用雙重鎖定的方法來保證當(dāng)instance == null時(shí),多個(gè)線程調(diào)用getInstance()方法時(shí),都可以通過第一重判斷的問題。
一般情況下餓漢的單例模式就可以滿足大部分的需求了,關(guān)于單例模式基本情況就是這樣了。
到此為止, 關(guān)于java的單例模式有了一個(gè)基礎(chǔ)的認(rèn)識, 但是對于具體的使用方法還是需要多加鞏固和練習(xí),如果想了解更多相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊。
分享名稱:java的單例模式是什么
URL分享:http://aaarwkj.com/article24/gjddce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、自適應(yīng)網(wǎng)站、App開發(fā)、微信公眾號、網(wǎng)站導(dǎo)航、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)