AI代码解释 publicstaticvoidmain(String[]args){WpOrder oldOrder...;WpOrder newOrder=DeepCopyUtil.deepCopy(oldOrder);}
readObject(); } } public class DeepCopySerializationExample { public static void main(String[] args) throws IOException, ClassNotFoundException { Address address = new Address("New York", "USA"); Person originalPerson = new Person("John", 28, address); // 深拷贝 Person clonedPerson = ...
StringoriginalString="Hello World";// 创建一个原始的String对象StringdeepCopyString=(String)originalString.clone();// 使用clone方法进行深拷贝 1. 2. 3. 在上述代码中,我们使用了String的clone方法来创建一个原始String对象的副本deepCopyString,实现了深拷贝。 类图 String 在类图中,我们展示了String类,它是J...
在上面的深拷贝实现中,我们没有在复制构造函数中创建新的String,因为String是一个不可变类,因此,它们不能被意外修改。 @TestpublicvoidwhenModifyingOriginalObject_thenCopyShouldNotChange(){Addressaddress=newAddress("Downing St 10","London","England");Userpm=newUser("Prime","Minister",address);UserdeepCo...
person2 = Person@445b295b, person2.name = String@385e9564 可以看到,两个Person对象是不同的,但是它们引用的name是相同的。这就是浅拷贝。 深拷贝(Deep Copy) 深拷贝创建一个新的对象,并且递归地复制原始对象的所有字段和引用指向的对象,而不仅仅是复制引用本身。
publicclassDeepCopyTest{publicstaticvoidmain(String[]args){// 创建对象PersonoriginalPerson=newPerson("John",25);PersoncopiedPerson=newPerson(originalPerson);// 修改原始对象属性originalPerson.setName("Mike");originalPerson.setAge(30);// 输出原始对象和复制对象的属性值System.out.println("原 Person: ...
public classPersonimplementsCloneable{private String name;private int age;private Address address;publicPerson(String name,int age,Address address){this.name=name;this.age=age;this.address=address;}// 实现Cloneable接口,重写clone()方法@Override
/*clone方法实现浅拷贝*/publicclassShallowCopy {publicstaticvoidmain(String[] args) { Age a=newAge(20); Student stu1=newStudent("摇头耶稣",a,175);//通过调用重写后的clone方法进行浅拷贝Student stu2=(Student)stu1.clone(); System.out.println(stu1.toString()); ...
publicclassShallowCopy { publicstaticvoidmain(String[] args) { Professor0 p =newProfessor0("wangwu",50); Student0 s1 =newStudent0("zhangsan",18, p); Student0 s2 = (Student0) s1.clone(); s2.p.name="lisi"; s2.p.age =30;
public String getName() { return name; } public static void main(String[] args) { DeepCopyExample original = new DeepCopyExample(25, John); DeepCopyExample copy = new DeepCopyExample(original); System.out.println(Original: + original.getAge() + + original.getName()); ...