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

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

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

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

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

3 回答

?
森林海

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

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

  • 簡單-每個班級僅處于一種狀態(tài)

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

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

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


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

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

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

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


查看完整回答
反對 回復(fù) 2019-10-16
  • 3 回答
  • 0 關(guān)注
  • 596 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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