
文章图片
为什么要克隆对象?直接new一个不行吗?
克隆的对象可能包含已经修改过的数据 , 而new的对象是初始化的数据 。 所以 , 克隆主要的目的就是为了保持对象的“状态”(即此时的数据) 。 虽然 , 可以通过new对象然后按照set方法一个个设置对象数据 。 但是 , 大型项目中大对象十分常见 , 不可能去一个一个设置对象 , 此时 , 克隆就十分有必要了 。
那么如何复制一个对象呢?
总所周知 , Object是所有类的父类 , 它提供了一个clone方法 , 用于实现clone操作 。 我们只需要覆盖Object类的clone方法即可 。
克隆的分类?
浅克隆:如果原型对象的成员变量是值类型 , 将复制一份给克隆对象;如果原型对象的成员变量是引用类型 , 则将引用对象的地址复制一份给克隆对象 , 也就是说原型对象和克隆对象的成员变量指向相同的内存地址 。
【Java|Java对象克隆】深克隆:在深克隆中 , 无论原型对象的成员变量是值类型还是引用类型 , 都将复制一份给克隆对象 , 深克隆将原型对象的所有引用对象也复制一份给克隆对象
具体 , 我们可以通过两张图来展示 。
浅克隆
深克隆
下一回 , 我们将仔细的探究两种克隆方式的不同!
\uD83D\uDE4F如果内容对您有帮助 , 希望您能多多点赞收藏加关注 , 激励作者创作出更加优质内容 , 谢谢!\uD83D\uDE4F
- 程序员|程序员的口味变了!C++首次逆袭JAVA:跻身最受欢迎编程语言TOP3
- Java|华为笔记本双12大促开启 智慧体验让办公学习更高效
- Java|京东第一刀落下:多个副总裁卸任 刘强东嫡系人手接管
- Java|荣耀Magic5Pro很大胆,16GB+5000mAh+100W,香喷喷
- Java|MIUI14把精简当作核心卖点,国产系统急需做减法
- Java|“高薪专业户”的IT互联网行业是否已达到天花板?Java行业薪酬
- javascript|全民淘宝节|千万个淘宝卖家,有千万种答案
- 【微服务】146:商品品牌业务后台Java代码编写
- 【微服务】162:利用Java实现索引库相关的分页、排序和聚合
- Java|闹剧结束了?台积电正式宣布,美媒:张忠谋把关键技术留在了本土
