博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java的Cloneable接口还有深浅复制
阅读量:4682 次
发布时间:2019-06-09

本文共 642 字,大约阅读时间需要 2 分钟。

我的小记录

首先语法上,搞清除,Java有个Cloneable接口,但这个接口是没有定义方法的。

那实现了这个接口有什么用呢?

再看Object类中,有个clone()方法,这个方法提供一个浅复制的功能,如果你的类不实现Cloneable接口,然后你的类的instance调用clone()的话,就会报异常。

 

 

浅复制,是指浅度克隆对于要克隆的对象,对于其基本数据类型的属性,复制一份给新产生的对象,对于非基本数据类型的属性,仅仅复制一份引用给新产生的对象,即新产生的对象和原始对象中的非基本数据类型的属性都指向的是同一个对象。

直接用Object.clone()方法就是浅复制。

 

深复制就是   简单的说就是:除了克隆自身对象,还对其他非基本数据类型的引用的其他以外的所有对象,都克隆了一遍。

 

然后主要看这两篇文章:

《Cloneable接口和Object的clone()方法 》——https://www.cnblogs.com/haitaofeiyang/p/7708000.html

这篇博客讲clone()方法还有Cloneable接口还有怎么实现深浅复制。

 

《Java中Cloneable接口的浅复制与深复制》——https://blog.csdn.net/shangming150/article/details/80323825

这篇博客讲深浅复制而且例子很详细。

转载于:https://www.cnblogs.com/wangshen31/p/10366762.html

你可能感兴趣的文章
winform窗口关闭提示
查看>>
64款工具,总有合适您的那款
查看>>
我的第一篇博客
查看>>
大数据学习线路整理
查看>>
【C++算法与数据结构学习笔记------单链表实现多项式】
查看>>
关于ProjectServer定制化项目中心页面
查看>>
使用Collectd + InfluxDB + Grafana进行JMX监控
查看>>
Linux下tar,zip命令详解
查看>>
C#垃圾回收机制
查看>>
31、任务三十一——表单联动
查看>>
[ios] IOS文件操作的两种方式:NSFileManager操作和流操作【转】
查看>>
Jenkins之Linux和window配置区别
查看>>
python之hasattr、getattr和setattr函数
查看>>
maven使用阿里镜像配置文件
查看>>
Java之字符流操作-复制文件
查看>>
iOS开发UI篇—实现一个私人通讯录小应用(二)
查看>>
iOS开发UI篇—UITableview控件使用小结
查看>>
lesson1 预备知识
查看>>
Copy code from eclipse to word, save syntax.
查看>>
arguments.callee的作用及替换方案
查看>>