为了账号安全,请及时绑定邮箱和手机立即绑定

为什么说我们不需要克隆不可变类?

为什么说我们不需要克隆不可变类?

慕勒3428872 2023-08-16 17:33:08
不可变类只是其实例无法修改的类。不可变类有利于缓存目的并且是线程安全的。不可变对象是其状态一旦启动就不会改变的实例。而对象克隆是指创建对象的精确副本。它创建当前对象类的新实例,并使用该对象相应字段的内容初始化其所有字段。现在,问题来了,为什么说我们不需要克隆不可变类呢?是因为创建已用于缓存目的的数据的精确副本会增加系统中创建的垃圾,并可能减慢应用程序的速度。或者其中还有其他相关答案?
查看完整描述

2 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

如果要更改副本的状态而不更改原始对象的状态,通常可以创建对象的副本(克隆)。

由于不可变类的对象的状态无法更改,因此您可以使用原始对象,而无需担心更改其状态的风险。


查看完整回答
反对 回复 2023-08-16
?
慕斯709654

TA贡献1840条经验 获得超5个赞

如果您已经拥有一个不可变类的对象,那么再拥有第二个功能相同的对象是没有意义的,您可以在任何地方使用一个实例。此外,如果您要克隆它,您只会使用两倍的内存,而不会获得额外的收益。



查看完整回答
反对 回复 2023-08-16
  • 2 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信