深拷贝与浅拷贝都是对象拷贝
对象拷贝(创建对象的一个副本):对象与副本的地址不同,也就是说是创建了一个全新的对象
而不是把原来的地址赋予一个全新的引用变量。
使用对象拷贝:使用clone()方法。
前提:
实现Cloneable接口。
需要重写clone()方法,修改其访问修饰符为public
调用super.clone()获取需要拷贝的对象。
1.浅拷贝
被拷贝对象的所有值都与原来的对象相同。而原有对象所引用的对象指向的地址不变。且拷贝对象与原有对象会共享原有对象中的引用的对象。
即浅拷贝只会复制原对象,而不会复制原对象的引用对象。
两个引用对象分别指向两个不同的对象,但两个引用对象的引用指向的是一个对象。
2.深拷贝
拷贝原有对象的所有属性以及其引用对象。
两个引用对象分别指向两个不同的对象,且两个引用对象的引用分别指向两个不同的对象。