您的位置:首页 > 编程语言 > Java开发

java shallow clone(浅克隆)与深克隆(deep clone) 笔记

2014-03-25 15:34 253 查看

java实现shallow clone(浅克隆)与深克隆(deep clone)

克隆就是复制一个对象的复本.但一个对象中可能有基本数据类型,如:int,long,float    等,也同时含有非基本数据类型如(数组,集合等)被克隆得到的对象基本类型的值修改了,原对象的值不会改变.这种适合shadow
clone(浅克隆).

但如果你要改变一个非基本类型的值时,原对象的值却改变了,.比如一个数组,内存中只copy他的地址,而这个地址指向的值并没有 copy,当clone时,两个地址指向了一个值,这样一旦这个值改变了,原来的值当然也变了,因为他们共用一个值.,这就必须得用深克隆(deep clone).

当克隆的对象只有基本类型,不含引用类型时,可以用浅克隆实现.     

当克隆的对象含有引用类型时,必须使用深克隆实现.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java