对象的克隆

将一个对象复制一份,称为对象的克隆。

在Object类中存在一个clone()方法:

protected Object clone()throws CloneNotSupportedException

如果某个类的对象想要被克隆,则对象所在的类必须实现Cloneable接口,此接口没有定义任何方法,是一个标记接口

代码实现

需要克隆的实体类:

class Lili implements Cloneable {private String nama;private int age;public Lili(String nama, int age) {this.nama = nama;this.age = age;}// get,set,toString方法@Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();}
}

测试:

public class Test1 {public static void main(String[] args) {Lili lili = new Lili("丽丽", 21);try {Lili newLili = (Lili) lili.clone();System.out.println(lili);System.out.println(newLili);System.out.println(lili == newLili);} catch (CloneNotSupportedException e) {e.printStackTrace();}}
}

java中对象的克隆相关推荐

  1. Java中对象的深复制(深克隆)和浅复制(浅克隆)介绍

    1.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象. ⑵ ...

  2. cloning java_深入浅出Java中的clone克隆方法,写得太棒了!

    作者:张纪刚 blog.csdn.net/zhangjg_blog/article/details/18369201/ 2019-03-24 10:33:04 Java中对象的创建 clone 顾名思 ...

  3. 深入浅出Java中的clone克隆方法,写得太棒了!

    作者:张纪刚 blog.csdn.net/zhangjg_blog/article/details/18369201/ Java中对象的创建 clone 顾名思义就是 复制 , 在Java语言中, c ...

  4. java中的深度克隆浅克隆_了解Java中的可克隆接口

    java中的深度克隆浅克隆 什么是对象克隆? 对象克隆是生成具有不同名称的对象的精确字段到字段副本的过程. 克隆的对象在内存中有自己的空间,可在其中复制原始对象的内容. 这就是为什么在克隆后更改原始对 ...

  5. JAVA之对象的克隆

    JAVA之对象的克隆 1.为什么要克隆? ①方便,克隆的对象可能包含一些已经修改过的属性,而new出来的对象的属性都还是初始化时候的值,所以当需要一个新的对象来保存当前对象的"状态" ...

  6. Java中对象的储存区

    文章目录 1 两个重要的问题 2 C语言中数据的存储区 3 Java中对象的储存区 4 Java为什么采用动态内存分配? 4 为什么基本类型是特例? 1 两个重要的问题 对象的数据位于何处? 如何控制 ...

  7. Java中对象的实例化顺序

    文章目录 1 Java中对象的实例化顺序 1 Java中对象的实例化顺序 继承后的初始化顺序: 静态成员包括静态构造代码块,初始化顺序跟书写顺序有关.

  8. 浅析Java中对象的创建与对象的数据类型转换

    这篇文章主要介绍了Java中对象的创建与对象的数据类型转换,是Java入门学习中的基础知识,需要的朋友可以参考下 Java:对象创建和初始化过程 1.Java中的数据类型     Java中有3个数据 ...

  9. Java中对象的三种状态

    转载自   Java中对象的三种状态 Java中的对象的三种状态是和垃圾回收紧密相关的,因此有必要深究. 状态一:可触及态:从根节点开始,可以搜索到这个对象,也就是可以访问到这个对象,也有人将其称为可 ...

  10. Java中对象和引用的理解

    2019独角兽企业重金招聘Python工程师标准>>> 偶然想起Java中对象和引用的基本概念,为了加深下对此的理解和认识,特地整理一下相关的知识点,通过具体实例从两者的概念和区别两 ...

最新文章

  1. [Matlab]二维统计分析图实例
  2. IT人的自我导向型学习:学习的1个理念和2个心态
  3. 如何使得自己的Python程序每行长度小于80个字符?
  4. 5G来了4G降速?负载均衡链路聚合器了解一下
  5. RedHat Enterprise Linux6.4 使用CentOS yum源
  6. Windows Mobile实现透明控件
  7. RAC (双节点) + 单实例 DATAGUARD 安装遇到的问题处理
  8. net.conn read 判断数据读取完毕_1.5 read, write, exit系统调用
  9. BeanUtils对象之间的复制
  10. pandas追加写入行、列
  11. [转帖] Windows 与linux的栈大小问题
  12. 解决 Exchange 2013提示“出现意外错误,无法处理您的请求”,无法打开OWA和ECP...
  13. 3种方法设置和取消Excel文件的打开密码
  14. 商业化游戏服务器引擎自定义框架设计思路
  15. mysql_帮助命令/通配搜索/help help用法(official doc)
  16. RISC-V MCU将常量定义到指定的Flash地址
  17. tair ldb存储引擎性能测试方案
  18. 51单片机c语言直流电机廷迟启停,51单片机控制直流电机不会加定时器延时程序...
  19. idea创建python spark项目的步骤_Spark入门(二)--如何用Idea运行我们的Spark项目
  20. Open vSwitch ETHERNET相关字段详解(eth_src/dl_src、eth_dst/dl_dst、eth_type/dl_type)

热门文章

  1. SPOJ VLATTICE Visible Lattice Points 莫比乌斯反演
  2. linux中执行命令权限不够怎样处理
  3. chrome中文本框样式问题
  4. nyist 488 素数环
  5. 鉴客 C# 抓取页面(带认证)
  6. Solaris做desktop必装的10个软件
  7. 什么场景下声明式事务会失效?如何解决?
  8. 面试题之SpringMVC整体工作流程
  9. 动态规划(Dynamic Programming)理论篇
  10. 干掉visio,这个画图神器太香了