浅谈java深拷贝和浅拷贝
来源:互联网 发布:python中的iteritems 编辑:程序博客网 时间:2024/04/28 01:52
JAVA里的clone分为:
1.深拷贝(深度复制):深拷贝要把复制的对象所引用的对象都复制了一遍。
2.浅拷贝(浅度复制):浅拷贝仅仅复制所考虑的对象,而不复制他所引用的对象。
Java中对象的克隆,为了获取对象的一份拷贝,我们可以利用Object类的clone()方法。必须要遵循下面三点
1.在派生类中覆盖基类的clone()方法,并声明为public(Object类中的clone()方法为protected的)。
2.在派生类的clone()方法中,调用super.clone()。
3.在派生类中实现Cloneable接口。
Object类里的clone方法是浅复制(浅克隆)
1.浅拷贝
基类:
派生类1:
派生类2:
我们来做一下测试,试图利用克隆的对象来修改被克隆的对象中所引用的对象:
这里是输出:
可见被克隆的对象和克隆的对象共享了这个boss对象。
2.深拷贝
基类同上;
boss类同上;
新的UIDesigner类:
我们同样来做一个测试,测试的目的同上:
我们来看一下输出:
由输出我们可以看到,被克隆的对象和克隆的对象不再共享同一个boss对象。
如有问题,欢迎大家指出
0 0
- 浅谈java深拷贝和浅拷贝
- 浅谈Java中的深拷贝和浅拷贝
- 浅谈Java中的深拷贝和浅拷贝(转载)
- 浅谈Java中的深拷贝和浅拷贝(转载)
- 浅谈Java中的深拷贝和浅拷贝
- 浅谈Java中的深拷贝和浅拷贝
- 浅谈Java中的深拷贝和浅拷贝
- 浅谈深拷贝和浅拷贝
- Java的深拷贝和浅拷贝
- Java的深拷贝和浅拷贝
- Java中的深拷贝和浅拷贝
- Java的深拷贝和浅拷贝
- Java中的浅拷贝和深拷贝
- java中的深拷贝和浅拷贝
- java浅拷贝和深拷贝
- Java的浅拷贝和深拷贝
- Java的深拷贝和浅拷贝
- Java中的深拷贝和浅拷贝
- 面向切面编程(AOP)的理解
- 求三个数中的最大者
- metaq的客户端自动断线重连机制
- StoreKit框架中几种重要的类及协议类图
- Gallery
- 浅谈java深拷贝和浅拷贝
- ASM和AAM的一些代码资源
- C++开发工程师面试题库 200~250道
- 第二章 链路层 2.6PPP:点对点协议
- 解决openfire中发送某些特殊字符会断开xmpp连接的问题
- sql leyangjun
- C++开发工程师面试题库 150~200道
- Catch That Cow解题报告
- C++开发工程师面试题库 100~150道