Junior — Middle
97
Explique qué se entiende por clonación profunda de un objeto o estructura de datos.
Respuesta de la IA
sobes.tech AI
Глубокое клонирование (deep cloning) объекта или структуры данных означает создание полной копии объекта вместе со всеми объектами, на которые он ссылается, рекурсивно. В результате получается новый объект, который не разделяет ссылки с оригиналом.
Это отличается от поверхностного клонирования (shallow copy), при котором копируются только сами поля объекта, а вложенные объекты остаются общими (ссылаются на те же экземпляры).
Пример глубокого клонирования в Java с использованием сериализации:
import java.io.*;
public class DeepClone {
public static <T extends Serializable> T clone(T object) {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(object);
oos.flush();
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bais);
return (T) ois.readObject();
} catch (IOException | ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
}
Таким образом, глубокое клонирование полезно, когда нужно создать полностью независимую копию сложной структуры данных, чтобы изменения в копии не влияли на оригинал.