克隆不可变对象中的可变引用将在每次引用时创建不必要的对象

时间:2018-05-16 03:13:43

标签: java immutability

我想澄清以下问题:

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

这是建议的,还是我们还有其他任何做法可以逃避这个?

1 个答案:

答案 0 :(得分:0)

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