1、浅拷贝:
例如数组,就只是将数组引用指向了另一个句柄,这样改变一个数组的时候,另一个指向的数组也会改变。
一个句柄改变值内容,另一个句柄访问的内容也随之改变
浅拷贝是会将对象的每个属性进行依次复制,但是当对象的属性值是引用类型时,实质复制的是其引用,当引用指向的值改变时也会跟着变化。
int[] arr={1,2,3};
int[] brr=arr;
2、深拷贝:信息层层拷贝,引用完全隔离
深拷贝后的对象与原来的对象是完全隔离的,互不影响,对一个对象的修改并不会影响另一个对象。
拷贝方式:
2.1构造函数方法
下面是数组的深拷贝
2.2 重写clone()方法
步骤:1、重写从Object父类继承而来的clone()方法,并修改为public
2、实现Cloneable接口,来告诉jvm此类允许克隆
结论:重写clone()方法的深拷贝只能对当前类的信息进行拷贝,无法拷贝当前类的引用