有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java哪个更快:克隆还是使用流?

在Java中,哪个更快:

  • 克隆一个对象,然后将其传递给多个侦听器,假设克隆的对象只包含嵌套数组、原语和字符串
  • 使用流将数据从一个对象传递到另一个对象

共 (2) 个答案

  1. # 1 楼答案

    我想克隆会更快,因为:

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

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

  2. # 2 楼答案

    如果clone()的实现合理合理,克隆将更快

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

    但是,使您的对象不可变并且不必再担心克隆实例会更快:-)