01 protected vative Object clone()
克隆的对象属性有值
按照原对象创建一个新对象 复制原对象的内容
clone()是protected 只能在子类中使用
不会调用构造函数
类需要实现Cloneable接口 重写clone方法
重写clone()方法后 ,在其他类中调用clone时
创建出来的对象和以前的对象是两个对象 引用地址不一样
数组也可以进行克隆
是native方法
重写Object的clone(),在调用super.clone()会先检查是否实现了Cloneable接口,没实现就抛异常
02 浅克隆
![在这里插入图片描述](https://img-blog.csdnimg.cn/7abaec1cee6c4922a2ec79757a1ca53f.png
测试
03 浅克隆的问题
如果是引用类型
克隆出来的对象的属性的引用和之前的对象属性的引用是一样的,如果任意一个修改了,两外一个也会修改
输出为true
04 深度克隆
深拷贝也可以使用序列化来做
克隆出来的对象的属性的引用和之前的对象的属性的引用是不一样的,是新的
输出 false