猿问

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

不可变类只是其实例无法修改的类。不可变类有利于缓存目的并且是线程安全的。不可变对象是其状态一旦启动就不会改变的实例。

而对象克隆是指创建对象的精确副本。它创建当前对象类的新实例,并使用该对象相应字段的内容初始化其所有字段。

现在,问题来了,为什么说我们不需要克隆不可变类呢?

是因为创建已用于缓存目的的数据的精确副本会增加系统中创建的垃圾,并可能减慢应用程序的速度。或者其中还有其他相关答案?


慕勒3428872
浏览 105回答 2
2回答

富国沪深

如果要更改副本的状态而不更改原始对象的状态,通常可以创建对象的副本(克隆)。由于不可变类的对象的状态无法更改,因此您可以使用原始对象,而无需担心更改其状态的风险。

慕斯709654

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

相关分类

Java
我要回答