java 类拷贝

直接上代码:
public
class Demo { public static void main(String[] args) throws CloneNotSupportedException { Person p1 = new Person(); p1.setAge(123); p1.setName("abc"); Person p2 = (Person) p1.clone(); p2.setAge(222); System.out.println(p1+""+p1.toString()); System.out.println(p2+""+p2.toString()); } } /** * * @see java.lang.CloneNotSupportedException * @see java.lang.Object#clone() * * */ class Person implements Cloneable { public Object clone() throws CloneNotSupportedException{ return (Person) super.clone(); } private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }

运行结果:

在日常项目偶尔会用到类拷贝 

类似  map.putAll操作

但是我修改后面的对象会影响前一个对象的原始值。

都是指向同一个地址。

cloen 会另外开辟一个内存来保存拷贝出来的值。

修改不会影响原始值。个人理解



原文地址:https://www.cnblogs.com/1-Admin/p/9093205.html