- 关 键 词:
- java
为什么需要有对象拷贝?
对象拷贝相对的自然是引用拷贝。java初学者经常会问,我这个方法要改变一个对象的属性,可以把参数传进去了,为什么没有改变了?
——基本数据类型传值,而对象传引用或引用的拷贝。
而有时候我们要获取到一个当前状态的对象复制品,他们是两个独立对象。不再是引用或者引用拷贝(实质都是指向对象本身)。就是说a是b的拷贝,b发生变化的时候,不要影响a。
对象拷贝有浅拷贝和深度拷贝两种。
1)浅拷贝
浅拷贝是指对象中基本数据类型得到拷贝,而引用数据类型并未拷贝。
提到拷贝自然和clone联系起来了,所有具有clone功能的类都有一个特性,那就是它直接或间接地实现了Cloneable接口。
否则,我们在尝试调用clone()方法时,将会触发CloneNotSupportedException异常。
|
运行结果:
|
2)深度拷贝
相对浅拷贝。实现对象中基本数据类型和引用数据类型的拷贝。
请先看下面代码:
|
运行结果是:
333
333
而真正要实现拷贝还的加点代码,如下请对比上面和下面代码的异同之处:
|
运行结果:
333
test
这样基本就达到了我们当初的母的。
相关专题
- Java环境安装配置 (5866篇文章)
- Java编程开发手册 (8549篇文章)
- Java对象 (158篇文章)
- Java基础知识:初学者必须理解的六大问题 (76次浏览)
- 九个非常值得一看的MySpace程序 (72次浏览)
- struts验证框架开发详解 (48次浏览)
- 关于提高自己水平的十大技术 (47次浏览)
- Flex测试工具RIATest Beta版发布 (45次浏览)
- 100行Java代码构建一个线程池。 (40次浏览)
- JAVA基础知识:JAVA变量类型之间的相互转换 (33次浏览)
- 什么是面向接口编程 (29次浏览)
- 动态java代码的使用方法 (28次浏览)
- 程序员必读:对JAVA语言的十个常见误解 (26次浏览)



