当前位置: 首页 > 网络应用技术

深副本,浅副本和克隆,新方法效率比较

时间:2023-03-06 00:48:59 网络应用技术

  Java中有基本类型和参考类型。Java的作业全部通过该值传递

  在此基础上,“对象的副本”可以分为两种情况

  深副本

  Java中的所有对象均继承。该对象提供了一种方法。

  该方法是,因此我们不需要实施它。应该注意的是,该方法是,这意味着该方法只能在袋子或其子类中可见。

  如果我们要调用程序中的某个对象,则不可能。由于该方法是在中间定义的,因此该对象没有可见的方法。

  如上所述,方法是,我们不能直接在程序中调用对象。

  JDK建议“实现接口和重新授予模型以实现属性的副本”。

  阅读源代码,有以下结论

  请参阅“有效Java”中“有效Java”中的第13条

  接口的目的是成为接口。它规定,如果实现了类,该方法将返回对象的属性()副本(浅副本);否则,它将引发例外。

  在上面的第一个和第二点,可以描述以下伪编码。

  如果参考接口的源代码注释部分,则类实现接口,则该方法将返回对象一个副本的属性()副本,并且此处的副本是浅副本。

  以下内容与一个示例结合在一起。

  有两种方法可以实现深层复制:“序列化对象方法”和“次要呼叫方法”

  次要呼叫方法

  基于“浅副本”章节示例,使用“次要呼叫方法”来实现深层复制。

  在引入方法的基础上,引入了诸如“创建对象的4种方法”和“克隆和新方法比较”之类的问题。

  创建对象的4种方法如下

  以上四种方法可以创建一个Java对象,该对象在实现机制中具有以下差异

  使用创建对象直接在内存中复制数据块。这意味着该方法更有效吗?

  答案不是。JVM开发人员意识到,通过方法生成对象的方法更为常见,因此可以优化使用操作操作。

  在测试用例下方,使用两种方法创建对象,然后测试相应的时间。

  程序输出如下。

  可以看出,当创建对象时,该方法的时间消耗仅为1/10,也就是说,创建对象的方法更有效。

  但是,如果构造函数中有一些时间耗费的操作,则创建对象方法的效率将受到构造函数的性能的影响。如下所示,字符串的时间耗尽操作添加到构造函数中。

  此时,然后执行测试用例,创建对象,程序输出如下,并且时间消耗远大于该方法。

  最后,得出关于“连接的效率比较”的结论

  基于上述结论,在上面的“深拷贝”一章中,可以优化深层复制功能的实现。请勿调用创建对象的方法并更改直接调用构造函数以实现。