一.Cloneable 的用途

Cloneable和Serializable一样都是标记型接口,它们内部都没有方法和属性,implements Cloneable表示该对象能被克隆,能使用Object.clone()方法。如果没有implements Cloneable的类调用Object.clone()方法就会抛出CloneNotSupportedException。

二.克隆的分类

(1)浅克隆(shallow clone),浅拷贝是指拷贝对象时仅仅拷贝对象本身和对象中的基本变量,而不拷贝对象包含的引用指向的对象。
(2)深克隆(deep clone),深拷贝不仅拷贝对象本身,而且拷贝对象包含的引用指向的所有对象。

三.克隆的举例

要让一个对象进行克隆,其实就是两个步骤:
1. 让该类实现java.lang.Cloneable接口;
2. 重写(override)Object类的clone()方法。

Java Cloneable相关推荐

  1. java cloneable 用途_java中cloneable的使用

    什么是java中的浅克隆和深克隆? 浅克隆:克隆对象中的变量与之前对象的值相同,并且对象中的引用类型变量仍然指向原来对象引用类型变量的地址. 深克隆:克隆对象中的变量与之前对象的值相同,并且对象中的引 ...

  2. java cloneable 用途_java中的clon()和cloneable接口浅析(转)

    今天看了一上午关于clone()和cloneable interface 的文章,我推荐一篇供大家参考学习. 蓝色为我的翻译,有不当之处,大家多多包涵! clone() and the Cloneab ...

  3. java cloneable 接口_JDK源码阅读笔记-Cloneable接口

    JDK 版本:1.8 代码地址 1.前言 clone方法能方便的获得一个对象的拷贝,但其中也有些细节需要注意. 2.实现注意事项 2.1 要调用 clone 方法必须实现 Cloneable 接口 如 ...

  4. java cloneable 接口_Java8之Cloneable接口

    作用:实现对象的浅复制,在clone之后,改变其中一个对象的引用类型变量,会影响另外一个,改变不可变的属性,则不影响. 查看源码 package java.lang; public interface ...

  5. java的cloneable_关于Java cloneable

    克隆是一种基本的编程模式.事实上,Java在很多方面可能实现得很差,但这丝毫没有减少克隆的必要性.而且,很容易实现克隆,无论你希望它如何工作,浅层的,深层的,混合的,无论什么.如果愿意的话,甚至可以为 ...

  6. java cloneable 接口_Cloneable 接口 记号接口(标记接口)

    Cloneable 接口指示了一个类提供了一个安全的clone方法. 首先了解Object.clone()方法: clone是Object超类的一个protected方法,用户代码不能直接调用这个方法 ...

  7. java cloneable 用途_为什么Cloneable不被弃用?

    问题 众所周知,Java中的Cloneable接口被破坏了.这有很多原因,我不会提及; others已经做到了.它也是Java architects自己的立场. 因此,我的问题是:为什么还没有被弃用? ...

  8. 【设计模式 06】原型模式(克隆??)

    原型模式(clone?) Prototype pattern refers to creating duplicate object while keeping performance in mind ...

  9. 【Java】Cloneable 接口讲解 (包含浅拷贝与深拷贝不一样的实现讲解)

    在Java中除了new关键字可以创建对象(实例化对象)以外,使用Cloneable接口也可以实现对象的创建,具体用法如下: Cloneable接口比较特殊,虽然他是一个口接口,但是我们也必须重写clo ...

最新文章

  1. python生成柱状图 不显示_python – Matplotlib图表不显示在PyCharm中
  2. JMeter【第五篇】关联:5种方法
  3. RocketMq发送延迟消息
  4. 使用Ant 和 Maven打包发布命令行程序(转载)
  5. 离职潮来袭,但为什么HR还是很难招到人?
  6. oracle DataGuard停机和启动顺序
  7. Python数据结构与算法(二)栈和队列
  8. Leetcode 279 完美平方数
  9. Hive 星型模型入门
  10. 单机实验mysql的主从备份(master slaver)
  11. R-CNN算法学习(步骤二:特征提取)
  12. Android编程入门很简单pdf
  13. ChartControl动态添加曲线,X轴Label间隔显示
  14. cv::Mat转换为QImage错误
  15. gc java_java内存管理以及GC
  16. Flutter 画笔绘制二维码扫描框
  17. ubifs 分区格式化方法
  18. 小白对于Linux的学习
  19. 刷脸支付新技术的蔓延能出乎我们的意料
  20. (转)如何有效地管理好技术团队?

热门文章

  1. brackets 快捷键
  2. php 停留3秒,php怎么实现停留几秒后跳转
  3. Qt获取OpenGL版本
  4. python烟花小程序_七夕用python给男朋友写的小程序,感动哭了。
  5. 【Scratch考级99图】图8-等级考试scratch绘制复杂图形双叠加错位正方形
  6. 查看Oracle数据库名和实例名的命令
  7. matlab遗传算法先收敛后发散,遗传算法收敛问题
  8. python青果教务系统抢课_名额不够,技术来凑,利用Python实现教务系统强制性抢课...
  9. C++erase()
  10. 人造标准光源分类说明