亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java設計模式單例模式final關鍵字的問題

java設計模式單例模式final關鍵字的問題

三國紛爭 2018-12-07 09:54:39
今天看了一下java設計模式的單例模式,在懶漢式中一開始聲明的類的實例化對象為什么只用private static 聲明了而沒有加final關鍵字?在餓漢式中聲明實例是使用了private static final修飾
查看完整描述

7 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

聲明為final的變量,必須在類加載完成時已經賦值,?是什么意思呢?

就是,如果你是final非static成員,必須在構造器、代碼塊、或者直接定義賦值;

如果是final static 成員變量,必須直接賦值 或者在 靜態代碼塊中賦值。

然而直接賦值 或 靜態代碼塊中賦值 就變成餓漢模式了,

所以懶漢模式中,不能用final修飾

查看完整回答
反對 回復 2018-12-16
?
MM們

TA貢獻1886條經驗 獲得超2個贊

不一定需要final關鍵字吧。單例設計模式餓漢還是懶漢之分在于調用對象之前已經初始化還是調用之后再初始化。

查看完整回答
反對 回復 2018-12-16
?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

我知道這個,我的疑問是既然區別只是在聲明類的實例化對象的時機不同,為什么聲明的時候修飾的關鍵字不一樣

查看完整回答
反對 回復 2018-12-16
?
手掌心

TA貢獻1942條經驗 獲得超3個贊

@宿舍老五啊: 這個我感覺得看需求吧。需求有時候要求得那樣做。只是使適用情況不一樣吧

查看完整回答
反對 回復 2018-12-16
?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

單例模式和final有關系么?我之前沒用過啊

查看完整回答
反對 回復 2018-12-16
?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

用餓漢式實現時,

private static final Singleton instance = new Singleton();

在聲明時需要直接創建實例。

用懶漢式實現時,

private static Singleton instance;

聲明時不需要直接創建對象,但這兩種在聲明的時候為什么一個用了final修飾一個沒用?

查看完整回答
反對 回復 2018-12-16
  • 7 回答
  • 0 關注
  • 1372 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號