
文章图片
为什么要克隆对象?直接new一个不行吗?
克隆的对象可能包含已经修改过的数据 , 而new的对象是初始化的数据 。 所以 , 克隆主要的目的就是为了保持对象的“状态”(即此时的数据) 。 虽然 , 可以通过new对象然后按照set方法一个个设置对象数据 。 但是 , 大型项目中大对象十分常见 , 不可能去一个一个设置对象 , 此时 , 克隆就十分有必要了 。
那么如何复制一个对象呢?
总所周知 , Object是所有类的父类 , 它提供了一个clone方法 , 用于实现clone操作 。 我们只需要覆盖Object类的clone方法即可 。
克隆的分类?
浅克隆:如果原型对象的成员变量是值类型 , 将复制一份给克隆对象;如果原型对象的成员变量是引用类型 , 则将引用对象的地址复制一份给克隆对象 , 也就是说原型对象和克隆对象的成员变量指向相同的内存地址 。
【Java|Java对象克隆】深克隆:在深克隆中 , 无论原型对象的成员变量是值类型还是引用类型 , 都将复制一份给克隆对象 , 深克隆将原型对象的所有引用对象也复制一份给克隆对象
具体 , 我们可以通过两张图来展示 。
浅克隆
深克隆
下一回 , 我们将仔细的探究两种克隆方式的不同!
\uD83D\uDE4F如果内容对您有帮助 , 希望您能多多点赞收藏加关注 , 激励作者创作出更加优质内容 , 谢谢!\uD83D\uDE4F
- 为什么现在很少有人提及“克隆技术”了?“克隆技术”有何缺点?
- Java|干翻小米,红米又出超大杯旗舰,120W+2K直屏+双旗舰芯
- 百度地图|Java程序员应知应会之Maven和Gradle的区别
- javascript|穿戴设备将迎变革,OPPO又增新专利,能提升模式切换效率!
- Java|Gamamobi CEO黄继德:我们的元宇宙游戏不担心体验落差
- Java|美国传来新消息,ASML态度也变了,这一切竟如此之快
- Java|李佳琦消失扯下阿里“遮羞布”,原来淘宝根本就没有护城河
- Java|我做公众号终于不亏钱了
- Java|微信转账时弹出“这行字”,别输付款密码,有人已经中招了
- Java|合肥恒泽冠雨讲坛:哪些方法能够快速输出抖音视频内容?
