java shallow clone(浅克隆)与深克隆(deep clone) 笔记
2014-03-25 15:34
253 查看
java实现shallow clone(浅克隆)与深克隆(deep clone)
克隆就是复制一个对象的复本.但一个对象中可能有基本数据类型,如:int,long,float 等,也同时含有非基本数据类型如(数组,集合等)被克隆得到的对象基本类型的值修改了,原对象的值不会改变.这种适合shadowclone(浅克隆).
但如果你要改变一个非基本类型的值时,原对象的值却改变了,.比如一个数组,内存中只copy他的地址,而这个地址指向的值并没有 copy,当clone时,两个地址指向了一个值,这样一旦这个值改变了,原来的值当然也变了,因为他们共用一个值.,这就必须得用深克隆(deep clone).
当克隆的对象只有基本类型,不含引用类型时,可以用浅克隆实现.
当克隆的对象含有引用类型时,必须使用深克隆实现.
相关文章推荐
- Java Deep Clone Shallow Clone 深克隆和浅克隆
- JAVA中的深度克隆(deep clone) 和 影子克隆(shallow clone)浅析
- Java Deep Clone Shallow Clone 深克隆和浅克隆
- Java:浅克隆(shallow clone)与深克隆(deep clone)
- java实现shadow clone(浅克隆)与深克隆(deep clone)
- java实现shallow clone(浅克隆)与深克隆(deep clone)
- 11. JAVA常用类库 Part 4 (对象克隆技术clone、Arrays类、Comparable接口、比较器Comparator、观察者设计模式) ----- 学习笔记
- java语言——对象的深复制(deep clone)与浅复制(shallow clone)
- Java Clone, Shallow Copy and Deep Copy
- java语言——对象的深复制(deep clone)与浅复制(shallow clone)
- java浅拷贝(shallow clone)与深拷贝(deep clone)
- java实现深克隆(deep clone)
- Java中shallow clone 与deep Clone的区别
- Java中深拷贝(Deep Clone)与浅拷贝(Shallow Clone)
- java的对象克隆技术clone()之浅度克隆(shallow Clone)
- Java中shallow clone 与deep Clone的区别
- [2014-11-21]Java笔记_对象的深克隆与浅克隆、clone()
- java中equals和==之间的区别?clone方法的作用,及其为什么要使用clone方法?如何使用clone复制对象?以及深克隆浅克隆
- .NET深入学习笔记(4):深拷贝与浅拷贝(Deep Copy and Shallow Copy) 推荐
- [导入].NET深入学习笔记(4):深拷贝与浅拷贝(Deep Copy and Shallow Copy)