深浅克隆&拷贝

网友投稿 219 2022-12-02

深浅克隆&拷贝

浅克隆:Object 中的 clone() 方法在对某个对象克隆时对其仅仅是简单地执行域对域的 copy

对基本数据类型和包装类的克隆是没有问题的。String、Integer 等包装类型在内存中是不可以被改变的对象,所以在使用克隆时可以视为基本类型,只需浅克隆引用即可如果对一个引用类型进行克隆时只是克隆了它的引用,和原始对象共享对象成员变量

深克隆:在对整个对象浅克隆后,对其引用变量进行克隆,并将其更新到浅克隆对象中去,返回的是一个新对象。

public class Student implements Cloneable{ private String name; private Integer age; private Date date; @Override protected Object clone() throws CloneNotSupportedException { Student s = (Student) super.clone(); s.date = (Date) date.clone(); return s; //返回的是一个新对象 } //..... public static void main(String[] args) { Student s1 = new Student("zhangsan",11,new Date()); try { Student s2 = (Student) s1.clone(); System.out.println(s1);// Student@1b6d3586 System.out.println(s2);// Student@4554617c } catch (CloneNotSupportedException e) { e.printStackTrace(); } } }

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java ThreadGroup的作用及方法详解
下一篇:Jsp的九个内置对象
相关文章

 发表评论

暂时没有评论,来抢沙发吧~