JAVA---------------JAVA的克隆

原创
2016/10/11 20:54
阅读数 17

在 Java 语言中,我们说两个对象是否相等通常有两层含义:

  • 对象的内容是否相等,通常使用到对象的 equals(Object o) 函数;

  • 引用的地址是否相同,使用运算符 == 比较即可

当两个对象通过赋值符号 = 赋值时,表明这两个对象指向了内存中同一个地址,所以改变其中一个对象的内容,也就间接地改变了另一个对象的内容。有时候,我们需要从一个已经存在的对象重新拷贝一份出来,并且不仅这两个对象内容相等,在内存中存在两个独立的存储地址,互不影响,这时,就需要用到 Java 中的克隆机制。 

JAVA克隆创建一个和原来对象的内容相等,但是存储地址不一样的对象。

JAVA克隆:浅克隆和深克隆

浅克隆:之克隆自身对象的引用地址

深克隆: 也称“N层克隆”,克隆对象自身以及对象所包含的引用类型对象的引用地址。【在克隆方法中对每一个对象都进行克隆,即时这个对象是一个属性】

## 注意:这里需要注意的是,对于基本数据类型(primitive)和使用常量池方式创建的String 类型,都会针对原值克隆,所以不存在引用地址一说。当然不包括他们对应的包装类。 对于基本类型和String 只关注 原值的克隆,不关注引用地址。  引用地址只对于对象来说。

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部