”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 深副本与浅副本与Java中的克隆:有什么区别,我什么时候应该使用?

深副本与浅副本与Java中的克隆:有什么区别,我什么时候应该使用?

发布于2025-02-06
浏览:829

 Deep Copy vs. Shallow Copy vs. Clone in Java: What\'s the Difference and When Should I Use Each? 
复制值与复制对象

在讨论复制类型之前,对于区分

copy values 复制对象

复制一个值:

复制参考类型的值涉及分配对象引用,类似于复制integer。 && && && && &&&华复制一个对象:创建一个具有自己身份的新对象,涉及使用“新”显式或隐式。对象的深拷贝

浅复制:一个新对象的值与原始值相同,但是共享了对嵌入式对象的引用。 && && &&&&&]深复制:具有与原始值相同的值创建的新对象,但是对嵌入式对象的引用也被复制,从而使整个对象网络的完整重复。 考虑以下示例:类示例{ int foo; int [] bar; ... } 示例eg1 =新示例(1,new Int [] {1,2}); 示例eg2 = ...

EG1的浅副本将是:
    EG1的深副本将是:
  • 示例与浅层和深副本不同,克隆是所有Java类和数组中可用的方法。但是,重要的是要注意:克隆不一定会创建新对象。
  • 克隆的语义可以在不同类别的不同类别上差异很大。
  • 因此,使用克隆可能是无法预测的,并且无法管理。 ] 虽然这些术语在Java中经常使用,但它们的定义可能会差异很大。了解浅拷贝,深拷贝和克隆的细微差别对于准确的对象重复至关重要。牢记克隆的局限性并谨慎对待它也很重要。
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3