copia superficial, copia profunda, copia de referencia

Tabla de contenido

1. Copia superficial

2. Copia profunda

3. Copia de referencia

4. Ejemplo de código

5. Resumen


   La copia superficial, la copia profunda y la copia de referencia son tres formas diferentes que se utilizan en la programación para  copiar objetos o datos .

1. Copia superficial

Copia superficial: una copia superficial crea un nuevo objeto que contiene una referencia al objeto original. Esto significa que el nuevo objeto y el objeto original se referirán a la misma dirección de memoria, y las modificaciones de uno afectarán al otro. En resumen, una copia superficial solo copia la referencia del objeto, no el objeto en sí.

2. Copia profunda

Copia profunda: una copia profunda crea un nuevo objeto y copia recursivamente el objeto original y todos sus objetos anidados. Esto significa que el nuevo objeto es completamente independiente del objeto original y las modificaciones a un objeto no afectarán al otro. En resumen, una copia en profundidad copia todo el objeto y sus referencias.

3. Copia de referencia

Copia de referencia (Copia de referencia): la copia de referencia simplemente apunta la nueva variable a la dirección de memoria del objeto original sin crear un nuevo objeto. Esto significa que tanto la variable antigua como la nueva se refieren al mismo objeto, y los cambios en una variable también afectarán a la otra.

4. Ejemplo de código

// 假设有一个Person类
class Person {
    public String name;
    
    public Person(String name) {
        this.name = name;
    }
}

// 创建一个原始对象
Person original = new Person("Alice");

// 浅拷贝示例
Person shallowCopy = original;
shallowCopy.name = "Bob";
System.out.println(original.name);  // 输出 "Bob",原始对象被修改

// 深拷贝示例
Person deepCopy = new Person(original.name);
deepCopy.name = "Charlie";
System.out.println(original.name);  // 输出 "Bob",原始对象未被修改

// 引用拷贝示例
Person referenceCopy = original;
referenceCopy.name = "Dave";
System.out.println(original.name);  // 输出 "Dave",原始对象被修改

5. Resumen

Para la copia superficial y la copia de referencia, la modificación del objeto copiado afectará al objeto original, pero no la copia profunda. Por lo tanto, la copia profunda es el método de copia más completo, que puede crear copias independientes de objetos, mientras que la copia superficial y la copia de referencia solo crean nuevas referencias al mismo objeto.

Supongo que te gusta

Origin blog.csdn.net/chenchenchencl/article/details/131599189
Recomendado
Clasificación