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

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

為什么我們需要不變的階級?

為什么我們需要不變的階級?

慕仙森 2019-10-16 11:05:06
我無法獲得需要不可變類的方案。您是否曾經遇到過此類要求?或者您可以給我們提供任何實際的示例來說明我們應該使用這種模式的情況。
查看完整描述

3 回答

?
森林海

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

Joshua Bloch撰寫的有效Java概述了編寫不可變類的幾個原因:

  • 簡單-每個班級僅處于一種狀態

  • 線程安全-因為狀態不能更改,所以不需要同步

  • 以一成不變的風格編寫代碼可以帶來更強大的代碼。想象一下字符串不是一成不變的嗎?任何返回String的getter方法都將要求實現在返回String之前創建一個防御性副本-否則客戶端可能會意外或惡意破壞該對象的狀態。

通常,除非導致嚴重的性能問題,否則使對象不可變是一種好習慣。在這種情況下,可變的構建器對象可用于構建不可變的對象,例如StringBuilder


查看完整回答
反對 回復 2019-10-16
?
慕森王

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

Java實際上是所有引用之一。有時一個實例被多次引用。如果更改這樣的實例,它將反映到其所有引用中。有時,您根本不想使用它來提高魯棒性和線程安全性。然后,一個不可變的類很有用,因此必須創建一個實例并將其重新分配給當前引用。這樣,其他引用的原始實例將保持不變。

想象一下,如果Java String是可變的,它將是什么樣子。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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