java 拷贝

什么是浅拷贝和深拷贝

在 JAVA 中除了 char、byte、short、int、long、float、double、boolean等基础类型之外,还有类实例对象的引用数据类型。

一般使用"="做赋值操作,对于基本数据类型,实际上是拷贝的它的值,对于对象而言,赋值的实际上是这个对象的引用,将源对象的引用传递过去,本质上还是指向同一个对象。

通常说的浅拷贝和深拷贝就是在这个基础上来做区分的。那么什么是深拷贝,什么是浅拷贝呢?

如果在拷贝这个对象的时候,只对基本数据类型进行了拷贝,而对引用数据类型只是进行引用的传递,而没有真实的创建一个新的对象,即为浅拷贝。

反之,在对引用数据类型进行拷贝的时候,创建了一个新的对象,并且复制其内的成员变量,即为深拷贝。

简单来说:

浅拷贝:针对基本数据类型进行值传递,针对引用类型进行引用传递的拷贝即为浅拷贝深拷贝:针对基本数据类型进行值传递,针对引用数据类型,先创建新的对象实例,并复制其内容,即为深拷贝。

 

posted @ 2021-04-24 17:50  bearhuang123  阅读(68)  评论(0)    收藏  举报