導航:首頁 > 編程語言 > java餓漢式

java餓漢式

發布時間:2022-06-04 22:51:47

java單例模式餓漢式會有線程安全問題嗎

1、答案:不會有線程安全問題。

2、首先,一個類可以被使用必須經過 載入、連接和初始化
3、餓漢模式的對象創建是在初始化的時候創建的,初始化操作是jvm執行的(會給類變數賦初始值,執行靜態代碼塊等,類變數是用static修飾的變數),並且在我們看來一個類的初始化只會執行一次(jvm會控制),是不會有線程安全問題出現的
3、糾錯:不是「類一載入就實例化」,而是類先載入、連接(此步驟執行時間不固定,但是在初始化執行前必須執行結束)。初始化執行的時機是你new了一個對象,或者使用了反射機制,或者調用類的靜態變數和方法或者啟動有main方法的類

❷ JAVA 懶漢式 餓漢式 區別

這個是在單例設計模式中提及的,就是一個類希望不讓它不停的實例化對象,只能有一個對象
餓漢式(還沒使用到這個對象時就已經實例化了)
public class Text{
private Text(){}//將構造函數私有化

private static Text t=new Text();//私有的Text型變數
public static Text getText(){
return t;
}
}
懶漢式(使用到的時候才實例化)
public class Text{
private Text(){}//將構造函數私有化

private static Text t;//私有的Text型變數(未實例化)
public static Text getText(){
if(t==null){
t=new Text();
}
return t;
}
}
懶漢式性能上應該是比餓漢式好,但是要考慮的東西多一點,還需要考慮線程同步的時候可能帶來的隱患(此處沒寫)

❸ Java餓漢式多大機率出現多個對象

publicclassMyFactory{
//這里的volitale不可或缺
=null;

privateMyFactory(){
}

(){
if(factory==null){
synchronized(MyFactory.class){
if(factory==null){
factory=newMyFactory();
}
}
}
returnfactory;
}
}

如上上面的代碼,如果你不加volitale關鍵字,那麼由於可見性的原因,多線程並發情況下就可能new多個對象,至於概率多大,這個沒有一個准確的值,要看你線程並發情況。

我的這篇文章對線程安全有詳細的分析java線程安全

如果覺得我的回答對你有幫助,可以關注簡書--早晚程序員或者微信公眾號--早晚程序員

❹ java常用的幾種單例模式(懶漢式,餓漢式

單件模式用途:
單件模式屬於工廠模式的特例,只是它不需要輸入參數並且始終返回同一對象的引用。
單件模式能夠保證某一類型對象在系統中的唯一性,即某類在系統中只有一個實例。它的用途十分廣泛,打個比方,我們開發了一個簡單的留言板,用戶的每一次留言都要將留言信息寫入到資料庫中,最直觀的方法是沒次寫入都建立一個資料庫的鏈接。這是個簡單的方法,在不考慮並發的時候這也是個不錯的選擇。但實際上,一個網站是並發的,並且有可能是存在大量並發操作的。如果我們對每次寫入都創建一個資料庫連接,那麼很容易的系統會出現瓶頸,系統的精力將會很多的放在維護鏈接上而非直接查詢操作上。這顯然是不可取的。
如果我們能夠保證系統中自始至終只有唯一一個資料庫連接對象,顯然我們會節省很多內存開銷和cpu利用率。這就是單件模式的用途。當然單件模式不僅僅只用於這樣的情況。在《設計模式:可復用面向對象軟體的基礎》一書中對單件模式的適用性有如下描述:
1、當類只能有一個實例而且客戶可以從一個眾所周知的訪問點訪問它時。
2、當這個唯一實例應該是通過子類化可擴展的,並且客戶應該無需更改代碼就能使用一個擴展的實例時。
下面對單件模式的懶漢式與餓漢式進行簡單介紹:
1、餓漢式:在程序啟動或單件模式類被載入的時候,單件模式實例就已經被創建。
2、懶漢式:當程序第一次訪問單件模式實例時才進行創建。
如何選擇:如果單件模式實例在系統中經常會被用到,餓漢式是一個不錯的選擇。

閱讀全文

與java餓漢式相關的資料

熱點內容
易語言源碼轉python 瀏覽:364
程序員日祝福 瀏覽:883
阿里tv助手app哪裡下載 瀏覽:187
app活動怎麼關 瀏覽:202
java改變map 瀏覽:348
解壓鋼琴呂恆 瀏覽:991
程序員怎麼獲取被動收入 瀏覽:568
能不能別讓編程貓打電話給我了 瀏覽:687
量線突破指標源碼 瀏覽:458
雲伺服器阿里環境搭建 瀏覽:123
錐孔是怎麼編程的 瀏覽:133
加強箍和加密箍的區別 瀏覽:897
怎麼在騰訊伺服器上傳文件 瀏覽:643
公司門戶app安卓怎麼卸載 瀏覽:989
單片機中段源 瀏覽:143
電腦桌面文件加密要怎樣解除 瀏覽:963
quickfoxapp的商場在哪裡 瀏覽:2
單片機與pc機通信畢業設計 瀏覽:221
wan口的伺服器默認賬號是什麼 瀏覽:177
取小數位數php 瀏覽:716