// Java Copy 示例代码
import java.util.Arrays;
public class JavaCopyExample {
public static void main(String[] args) {
// 数组复制示例
int[] originalArray = {1, 2, 3, 4, 5};
int[] copiedArray = Arrays.copyOf(originalArray, originalArray.length);
System.out.println("Original Array: " + Arrays.toString(originalArray));
System.out.println("Copied Array: " + Arrays.toString(copiedArray));
// 对象复制示例(浅拷贝)
Person originalPerson = new Person("Alice", 30);
Person copiedPerson = originalPerson.clone();
System.out.println("Original Person: " + originalPerson);
System.out.println("Copied Person: " + copiedPerson);
// 深拷贝示例
Person deepCopiedPerson = originalPerson.deepClone();
System.out.println("Deep Copied Person: " + deepCopiedPerson);
}
}
class Person implements Cloneable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 浅拷贝
@Override
protected Object clone() {
try {
return super.clone();
} catch (CloneNotSupportedException e) {
return null;
}
}
// 深拷贝
public Person deepClone() {
return new Person(this.name, this.age);
}
@Override
public String toString() {
return "Person{name='" + name + "', age=" + age + "}";
}
}
Arrays.copyOf
方法来复制一个整数数组。该方法会创建一个新的数组,并将原数组的内容复制到新数组中。Cloneable
接口并重写 clone
方法,可以实现对象的浅拷贝。浅拷贝只会复制对象的基本数据类型和引用类型的引用,不会创建新的对象实例。deepClone
方法,可以实现对象的深拷贝。深拷贝会递归地创建对象及其所有引用对象的新实例,确保原始对象和复制对象之间没有共享引用。如果你需要更多关于 Java 复制的详细信息,请随时提问!
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站