什么公司网站建设做的好,海口网站建设流程,网站开发流程莆田,开发平台指的是什么目录 深拷贝、浅拷贝、引用拷贝Object类的clone()方法 深拷贝、浅拷贝、引用拷贝 ● 浅拷贝#xff1a; 对基本数据类型进行值传递#xff1b; 对引用类型#xff0c;复制了一份引用类型的变量 里面存储的内存地址一样 指向的对象也一样。
● 深拷贝#xff1a;对基本数据… 目录 深拷贝、浅拷贝、引用拷贝Object类的clone()方法 深拷贝、浅拷贝、引用拷贝 ● 浅拷贝 对基本数据类型进行值传递 对引用类型复制了一份引用类型的变量 里面存储的内存地址一样 指向的对象也一样。
● 深拷贝对基本数据类型进行值传递对引用数据类型创建一个新的对象并复制其内容此为深拷贝。
● 引用拷贝 是对引用地址的拷贝说明引用地址一样指向堆中的对象是同一个对象。
Object类的clone()方法
结果Object 的 clone 方法是一个浅拷贝如果它拷贝的对象中有其他对象那么其中的对象是不会得到彻底的拷贝。
深拷贝是彻底的拷贝两对象中所有的成员都是独立的一份而且成员对象中的成员对象也是独立一份。
浅拷贝中的某些成员变量可能是共享的深拷贝如果不够彻底就是浅拷贝。
代码验证
public class Person implements Cloneable{private int age ;private String name;public Person(int age, String name) {this.age age;this.name name;}public Person() {}public int getAge() {return age;}public String getName() {return name;}Overrideprotected Object clone() throws CloneNotSupportedException {return (Person)super.clone();}
}按照如下代码验证
Person p new Person(23, zhang);
Person p1 (Person) p.clone();String result p.getName() p1.getName() ? clone是浅拷贝的 : clone是深拷贝的;System.out.println(result);
//输出为clone是浅拷贝的