1

在 Java 中,这更快:

  • 克隆一个对象,然后将其传递给多个侦听器,假设克隆的对象不包含比嵌套数组、原语和字符串更复杂的东西
  • 使用 Streams 将数据从一个对象传递到另一个对象?
4

2 回答 2

1

假设 clone() 的实现是合理的,克隆会更快。

如果您考虑一下,这是因为 clone() 是一个高度专业化的函数,它只做一件事:创建对象的副本。因此它不需要担心太多开销——通常它所做的只是一个字段一个字段地复制到一个新的对象实例。

但是让你的对象不可变并且永远不必担心再次克隆实例会更快:-)

于 2010-06-02T15:11:46.840 回答
1

我猜克隆会更快,因为:

当您克隆时,您通过实例化另一个对象及其属性来创建另一个对象。当您使用流时,您序列化对象并反序列化它(而 Java 还必须创建对象的实例)。因此,当您使用流时,您有序列化对象的开销。

当然,clone() 的实现不应该做一些不寻常的事情,这会增加复制对象的时间。用数组、原语和字符串克隆对象不应该消耗太多时间。

于 2010-06-02T15:15:18.727 回答