Java中有基本类型和参考类型。Java的作业全部通过该值传递
在此基础上,“对象的副本”可以分为两种情况
深副本
Java中的所有对象均继承。该对象提供了一种方法。
该方法是,因此我们不需要实施它。应该注意的是,该方法是,这意味着该方法只能在袋子或其子类中可见。
如果我们要调用程序中的某个对象,则不可能。由于该方法是在中间定义的,因此该对象没有可见的方法。
如上所述,方法是,我们不能直接在程序中调用对象。
JDK建议“实现接口和重新授予模型以实现属性的副本”。
阅读源代码,有以下结论
请参阅“有效Java”中“有效Java”中的第13条
接口的目的是成为接口。它规定,如果实现了类,该方法将返回对象的属性()副本(浅副本);否则,它将引发例外。
在上面的第一个和第二点,可以描述以下伪编码。
如果参考接口的源代码注释部分,则类实现接口,则该方法将返回对象一个副本的属性()副本,并且此处的副本是浅副本。
以下内容与一个示例结合在一起。
有两种方法可以实现深层复制:“序列化对象方法”和“次要呼叫方法”
次要呼叫方法
基于“浅副本”章节示例,使用“次要呼叫方法”来实现深层复制。
在引入方法的基础上,引入了诸如“创建对象的4种方法”和“克隆和新方法比较”之类的问题。
创建对象的4种方法如下
以上四种方法可以创建一个Java对象,该对象在实现机制中具有以下差异
使用创建对象直接在内存中复制数据块。这意味着该方法更有效吗?
答案不是。JVM开发人员意识到,通过方法生成对象的方法更为常见,因此可以优化使用操作操作。
在测试用例下方,使用两种方法创建对象,然后测试相应的时间。
程序输出如下。
可以看出,当创建对象时,该方法的时间消耗仅为1/10,也就是说,创建对象的方法更有效。
但是,如果构造函数中有一些时间耗费的操作,则创建对象方法的效率将受到构造函数的性能的影响。如下所示,字符串的时间耗尽操作添加到构造函数中。
此时,然后执行测试用例,创建对象,程序输出如下,并且时间消耗远大于该方法。
最后,得出关于“连接的效率比较”的结论
基于上述结论,在上面的“深拷贝”一章中,可以优化深层复制功能的实现。请勿调用创建对象的方法并更改直接调用构造函数以实现。