Встречается на собеседованиях • сегодня
В чем разница между поверхностным и глубоким клонированием
Поверхностное клонирование создает новый объект, но копирует только примитивные поля и ссылки на вложенные объекты (без копирования самих объектов). Глубокое клонирование рекурсивно копирует все вложенные объекты, создавая полностью независимую копию.
Пример:
java
class Address implements Cloneable {
String city;
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone(); // поверхностное копирование Address
}
}
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;
}}
text
Поверхностное клонирование дефолтно реализовано в `Object.clone()`. Для глубокого нужно явно клонировать все вложенные объекты.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы