Java中的深浅克隆
来源:互联网 发布:centos ssh服务重启 编辑:程序博客网 时间:2024/05/09 16:01
笔者最近看了java的克隆机制,借此机会跟大家分享。
首先,我们为什么要用到克隆机制呢?想必大家都知道,就是为了实现纯粹的值传递,而不是复制对象的引用,避免后续操作修改原对象(被复制者)的数据。
首先,我们为什么要用到克隆机制呢?想必大家都知道,就是为了实现纯粹的值传递,而不是复制对象的引用,避免后续操作修改原对象(被复制者)的数据。
java中克隆分为浅克隆和深克隆:
前者仅仅复制所考虑的对象,而不复制它所引用的对象;后者把要复制的对象所引用的对象都复制了一遍。
两者共同点在于都要让对应的类实现Cloneable接口,实现clone()方法。
笔者在Eclipse上面测试了一下,很直观的观察出深浅克隆的区别所在。
1,在对象内部不存在其他对象的引用的时候,不涉及到到深克隆的问题(p2的改变不会引p1的变化)2,一旦涉及到内部其他对象的引用的时候,浅克隆的弊端就暴露出来(s2的改变引起了s1的变化,注意grade不变,因为它是基本类型,不是对象引用)3,针对浅克隆存在的问题,我们可以在clone()方法内部稍作调整即可解决该问题(s2改变不会引起s1的变化)除此之外,深克隆方式还有让目标类实现Serializable接口,重建新对象的时候,利用流对象进行写入即可。
文章首发地址为微信公众号:猿blog
文章首发地址为微信公众号:猿blog
文章首发地址为微信公众号:猿blog
重要的事情说三遍!!!
更多干货文章,还请欢迎大家关注和推荐。
1 0
- java中的深浅克隆
- Java中的深浅克隆
- java深浅克隆
- 深浅克隆
- 深浅克隆
- java克隆(深浅拷贝,复制)详解
- java克隆(深浅拷贝,复制)详解
- java克隆(深浅拷贝,复制)详解
- java中的深浅拷贝
- java中的深浅复制
- Java中的深浅拷贝
- 对象克隆+深浅拷贝
- java中的克隆
- java中的对象克隆
- java中的克隆
- 关于java中的克隆
- java 中的克隆
- Java中的克隆
- 如何查看主板的base address
- PHP操作 Redis队列简单示例
- 变形课
- OC与JS交互
- 设计模式(九)——适配器模式
- Java中的深浅克隆
- Handler和Application
- Maven 父pom中dependencyManagement版本优先级高于传递依赖版本
- 欢迎使用CSDN-markdown编辑器
- A + B Problem II
- Java 并发编程深入学习(四)——线程中断
- IIS发布之添加MIME映射
- 帮助一些小白的RecyclerView
- POJ 3259 Wormholes (spfa判断负权环)