Java Cloneable
一.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相关推荐
- java cloneable 用途_java中cloneable的使用
什么是java中的浅克隆和深克隆? 浅克隆:克隆对象中的变量与之前对象的值相同,并且对象中的引用类型变量仍然指向原来对象引用类型变量的地址. 深克隆:克隆对象中的变量与之前对象的值相同,并且对象中的引 ...
- java cloneable 用途_java中的clon()和cloneable接口浅析(转)
今天看了一上午关于clone()和cloneable interface 的文章,我推荐一篇供大家参考学习. 蓝色为我的翻译,有不当之处,大家多多包涵! clone() and the Cloneab ...
- java cloneable 接口_JDK源码阅读笔记-Cloneable接口
JDK 版本:1.8 代码地址 1.前言 clone方法能方便的获得一个对象的拷贝,但其中也有些细节需要注意. 2.实现注意事项 2.1 要调用 clone 方法必须实现 Cloneable 接口 如 ...
- java cloneable 接口_Java8之Cloneable接口
作用:实现对象的浅复制,在clone之后,改变其中一个对象的引用类型变量,会影响另外一个,改变不可变的属性,则不影响. 查看源码 package java.lang; public interface ...
- java的cloneable_关于Java cloneable
克隆是一种基本的编程模式.事实上,Java在很多方面可能实现得很差,但这丝毫没有减少克隆的必要性.而且,很容易实现克隆,无论你希望它如何工作,浅层的,深层的,混合的,无论什么.如果愿意的话,甚至可以为 ...
- java cloneable 接口_Cloneable 接口 记号接口(标记接口)
Cloneable 接口指示了一个类提供了一个安全的clone方法. 首先了解Object.clone()方法: clone是Object超类的一个protected方法,用户代码不能直接调用这个方法 ...
- java cloneable 用途_为什么Cloneable不被弃用?
问题 众所周知,Java中的Cloneable接口被破坏了.这有很多原因,我不会提及; others已经做到了.它也是Java architects自己的立场. 因此,我的问题是:为什么还没有被弃用? ...
- 【设计模式 06】原型模式(克隆??)
原型模式(clone?) Prototype pattern refers to creating duplicate object while keeping performance in mind ...
- 【Java】Cloneable 接口讲解 (包含浅拷贝与深拷贝不一样的实现讲解)
在Java中除了new关键字可以创建对象(实例化对象)以外,使用Cloneable接口也可以实现对象的创建,具体用法如下: Cloneable接口比较特殊,虽然他是一个口接口,但是我们也必须重写clo ...
最新文章
- python生成柱状图 不显示_python – Matplotlib图表不显示在PyCharm中
- JMeter【第五篇】关联:5种方法
- RocketMq发送延迟消息
- 使用Ant 和 Maven打包发布命令行程序(转载)
- 离职潮来袭,但为什么HR还是很难招到人?
- oracle DataGuard停机和启动顺序
- Python数据结构与算法(二)栈和队列
- Leetcode 279 完美平方数
- Hive 星型模型入门
- 单机实验mysql的主从备份(master slaver)
- R-CNN算法学习(步骤二:特征提取)
- Android编程入门很简单pdf
- ChartControl动态添加曲线,X轴Label间隔显示
- cv::Mat转换为QImage错误
- gc java_java内存管理以及GC
- Flutter 画笔绘制二维码扫描框
- ubifs 分区格式化方法
- 小白对于Linux的学习
- 刷脸支付新技术的蔓延能出乎我们的意料
- (转)如何有效地管理好技术团队?
热门文章
- brackets 快捷键
- php 停留3秒,php怎么实现停留几秒后跳转
- Qt获取OpenGL版本
- python烟花小程序_七夕用python给男朋友写的小程序,感动哭了。
- 【Scratch考级99图】图8-等级考试scratch绘制复杂图形双叠加错位正方形
- 查看Oracle数据库名和实例名的命令
- matlab遗传算法先收敛后发散,遗传算法收敛问题
- python青果教务系统抢课_名额不够,技术来凑,利用Python实现教务系统强制性抢课...
- C++erase()
- 人造标准光源分类说明