java,,"浅克隆,只复制一个对象 ,深克隆 对象和引用一起复制"有java实例吗?不理解啊

 我来答
山上的阿竹
2015-08-05 · TA获得超过463个赞
知道小有建树答主
回答量:513
采纳率:87%
帮助的人:135万
展开全部
对只包含进本类型的类来说,无所谓深克隆。但是一个类包含集合类或者复杂的类,就要考虑二者的区别了。

class Student {
private int id;
private Address address;
private ArrayList<Book> bookList;
}
对于以上类的一个对象a和克隆类 o来说:
浅克隆:
a !=o 但是 a.address == o.address, a.bookList == o.bookList
深克隆:
a !=o 但是 a.address != o.address, a.bookList != o.bookList
并且 bookList中的每个元素不是相同对象。
简言之, 浅克隆只复制本对象,深克隆除了本对象,其儿子、孙子、....都要克隆。
以上纯手敲,有错请包涵。
匿名用户
2015-08-05
展开全部
举例子:
一个猫,有年龄属性(int基本属性-克隆都一样)和一个(皮球)对象属性(克隆有区别)。
浅克隆一个猫,则第二只猫和第一只猫都指定了同一个皮球,即皮球本身没有被复制。内存中就一个皮球,两只猫用于同一个皮球引用地址,不管改变那只猫的皮球,另一只猫的皮球也跟着变。
深克隆
,第二只猫的皮球拥有和第一只猫一样的皮球(属性一样),但不是同一个对象,不是同一个引用。皮球互相独立,内存中有两个一样的皮球了,分别应用不同的皮球对象地址,把一只猫的皮球颜色改成红色,而另一猫的皮球还是原先的蓝色。
追问
都很好,可是只能采纳一个,非常感谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式