java总结之克隆
来源:互联网 发布:社交媒体数据 作用 编辑:程序博客网 时间:2024/05/21 17:24
概念定义
定义:对象复制就是将一个对象的属性拷贝到另一个有着相同类类型的对象中去,复制分为:浅复制、深复制、延迟复制三种。
浅复制:浅复制是按位复制对象,它会创建一个新的对象,这个对象有着原始对象属性值的精确拷贝。若原始对象属性值是基本类型,拷贝就是基本类型的值,若属性是引用类型(内存地址),拷贝的就是内存地址,如果一个对象改变了引用的地址,就会影响到另一个对象
看上图可知:
由于QuoteObject是一个引用类型,所以CopyObject与SourceObject指向QuoteObject相同的地址
而基本类型则是直接复制值
浅复制的实现:
源对象需要继承Cloneable接口,复写clone()方法,在clone方法中调用父类的clone()方法
用法:
Source s1 = new Source();
Source s2 = (Source)s1.clone();
其中s1与s2不是相同的,但是s1和s2中的值属性和引用属性是相同的深度复制
深度复制:会复制所有的的属性,拷贝的属性指向动态分配的内存,当对象和它引用的对象一起复制的时候就会发生深复制
深度复制的特点:较于浅复制,开销较大,速度较慢
看上图并与浅复制对比可知,在做复制的时候,引用类型的属性的指向是不相同的。所以在CopyObject中任何改动都不会影响到SourceObject
如何实现深复制:
一样的源类要实现Cloneable接口,重写clone方法,在clone方法中创建引用类型的
0 0
- java总结之克隆
- JAVA 克隆学习总结
- Java之克隆机制
- Java之克隆
- java之对象克隆
- JAVA之路_假克隆、浅克隆、深克隆
- java克隆之深克隆和浅克隆
- java克隆之浅层克隆与深层克隆
- java编程基础之克隆
- java相关总结3--浅克隆和深克隆
- Java 7之基础 - 浅克隆与深克隆
- java对象克隆之深度克隆 deep clone
- JAVA对象之克隆-原理分析
- Java复习之对象的克隆
- java 克隆
- java克隆
- java克隆
- JAVA克隆
- strcpy和memcpy的区别
- StackOverflowError出现的原因及解决办法
- Linux内核Socket CAN中文文档
- 最小的k个数
- 访问类的私有变量的两种方式
- java总结之克隆
- 第六周阅读程序五
- 华为CE12800接口默认配置
- 气象数据获取
- CheckBox点击lable文字选中
- 下载JDK历史版本,遇到url无法获取。
- fdisk扩容原分区容量大小
- 毕福剑风波
- 最新版SDWebImage的使用