第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

為什么字符串在Java和.NET中不能變?

為什么字符串在Java和.NET中不能變?

小怪獸愛吃肉 2019-07-11 16:20:56
為什么字符串在Java和.NET中不能變?為什么他們決定在Java和.NET(和其他一些語言)中使字符串不可變?他們?yōu)槭裁床蛔屗儯?
查看完整描述

3 回答

?
函數(shù)式編程

TA貢獻1807條經(jīng)驗 獲得超9個贊

根據(jù)有效Java,第4章,第73頁,第二版:

“這有很多很好的理由:與可變類相比,不可變類更易于設計、實現(xiàn)和使用,它們不太容易出錯,而且更安全。

[...]

"不可變的對象很簡單。不可變對象完全可以處于一種狀態(tài),即創(chuàng)建對象的狀態(tài)。如果您確保所有構(gòu)造函數(shù)都建立了類不變量,那么就可以保證這些不變量在任何時候都是正確的,而不需要付出任何努力。

[...]

不可變對象本質(zhì)上是線程安全的;它們不需要同步。它們不能被并發(fā)訪問它們的多個線程破壞。這是實現(xiàn)線程安全的最簡單的方法。事實上,沒有一個線程能夠觀察到另一個線程對不可變對象的任何影響。因此,不可變對象可以自由地共享。

[...]

同一章的其他一些小問題:

不僅可以共享不可變的對象,還可以共享它們的內(nèi)部。

[...]

不可變對象為其他對象(無論是可變的還是不可變的)提供了很好的構(gòu)建塊。

[...]

不可變類的唯一真正缺點是它們需要為每個不同的值設置一個單獨的對象。


查看完整回答
反對 回復 2019-07-11
  • 3 回答
  • 0 關注
  • 527 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號