首页 > 解决方案 > 在不可变对象中克隆可变引用将在每次引用时创建不必要的对象

问题描述

我想澄清以下问题:

如果我在不可变对象中有一个可变引用,并且在将可变引用传递给任何调用者对象之前克隆了它,这不会在 JVM 中创建可变引用对象的许多副本吗?

这是建议的,还是我们有任何其他做法可以摆脱这种情况?

标签: javaimmutability

解决方案


实际上,这将创建原始可变对象的多个副本/克隆,但是如果其他线程正在使用这些副本,所有这些副本都会很有用。否则,如果不修改或尽可能丢弃旧的,您可以简单地在同一个线程中使用相同的副本。


推荐阅读