有關單例模式懶漢式安全的問題(全)
單例模式有兩種一種是懶漢式,一種是餓漢式,他們有什么區別呢?
他們建立單例對象的時間不同,懶漢式的特點是延遲加載,當你用到的時候才去建立對象,
還有懶漢式多線程是不安全的,但是他可以有解決辦法,以下內容我會詳細說明。
他們怎么好記呢?
餓漢式,因為餓,所以就它需要迫切的吃東西,所以寫類的時候直接就創建對象。
懶漢式,因為懶,所以它就晚創建對象,特點是延遲加載。當你用到的時候它才會去建立對象。
當多線程的時候懶漢式會有安全問題,但是僅僅在方法前面加一個synchronized又會有效率的
問題,所以一下代碼是一個還算好的代碼,可以用在筆試題上,比其他的更高級

圖1
圖1代碼有兩個好處;
1.解決了多線程安全的問題,
2.用兩個判斷語句提高了效率。
面試的時候偶面試官可能問你,懶漢式有問題嗎?怎么解決?用的是什么鎖?
你的回答;有問題,在多線程的時候會出現安全問題,可以用同步代碼塊或者同步函數解決,但是效率低,用雙重判斷解決低效的問題。用的鎖是本類所屬的字節碼文件對象
一般面試不會問餓漢式
懶漢式的代碼
