Встречается на собеседованиях • сегодня

Что такое глубокое копирование

Глубокое копирование (deep copy) создает полностью независимую копию объекта, включая все вложенные объекты. В отличие от поверхностного копирования (shallow copy), где копируются только ссылки на вложенные объекты, deep copy рекурсивно копирует всю структуру.

Пример с clone():

java
class Person implements Cloneable {
    String name;
    Address address;
text
@Override
protected Object clone() throws CloneNotSupportedException {
    Person cloned = (Person) super.clone();
    cloned.address = (Address) address.clone(); // глубокое копирование вложенного объекта
    return cloned;
}

}

class Address implements Cloneable {
String city;

text
@Override
protected Object clone() throws CloneNotSupportedException {
    return super.clone();
}

}

text

Альтернативные способы:
- Сериализация/десериализация
- Использование библиотек (Apache Commons, Gson)
- Ручное копирование через конструкторы

Важно: стандартный `Object.clone()` делает shallow copy, для deep copy нужно переопределять метод.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы