在 Java 中,这更快:
- 克隆一个对象,然后将其传递给多个侦听器,假设克隆的对象不包含比嵌套数组、原语和字符串更复杂的东西
- 使用 Streams 将数据从一个对象传递到另一个对象?
在 Java 中,这更快:
假设 clone() 的实现是合理的,克隆会更快。
如果您考虑一下,这是因为 clone() 是一个高度专业化的函数,它只做一件事:创建对象的副本。因此它不需要担心太多开销——通常它所做的只是一个字段一个字段地复制到一个新的对象实例。
但是让你的对象不可变并且永远不必担心再次克隆实例会更快:-)
我猜克隆会更快,因为:
当您克隆时,您通过实例化另一个对象及其属性来创建另一个对象。当您使用流时,您序列化对象并反序列化它(而 Java 还必须创建对象的实例)。因此,当您使用流时,您有序列化对象的开销。
当然,clone() 的实现不应该做一些不寻常的事情,这会增加复制对象的时间。用数组、原语和字符串克隆对象不应该消耗太多时间。