不可變類只是其實(shí)例無法修改的類。不可變類有利于緩存目的并且是線程安全的。不可變對(duì)象是其狀態(tài)一旦啟動(dòng)就不會(huì)改變的實(shí)例。而對(duì)象克隆是指創(chuàng)建對(duì)象的精確副本。它創(chuàng)建當(dāng)前對(duì)象類的新實(shí)例,并使用該對(duì)象相應(yīng)字段的內(nèi)容初始化其所有字段。現(xiàn)在,問題來了,為什么說我們不需要克隆不可變類呢?是因?yàn)閯?chuàng)建已用于緩存目的的數(shù)據(jù)的精確副本會(huì)增加系統(tǒng)中創(chuàng)建的垃圾,并可能減慢應(yīng)用程序的速度?;蛘咂渲羞€有其他相關(guān)答案?
2 回答

富國滬深
TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊
如果要更改副本的狀態(tài)而不更改原始對(duì)象的狀態(tài),通??梢詣?chuàng)建對(duì)象的副本(克隆)。
由于不可變類的對(duì)象的狀態(tài)無法更改,因此您可以使用原始對(duì)象,而無需擔(dān)心更改其狀態(tài)的風(fēng)險(xiǎn)。

慕斯709654
TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊
如果您已經(jīng)擁有一個(gè)不可變類的對(duì)象,那么再擁有第二個(gè)功能相同的對(duì)象是沒有意義的,您可以在任何地方使用一個(gè)實(shí)例。此外,如果您要克隆它,您只會(huì)使用兩倍的內(nèi)存,而不會(huì)獲得額外的收益。
添加回答
舉報(bào)
0/150
提交
取消