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

В чем разница между клонированием и копированием объектов

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

Поверхностное копирование копирует ссылки на вложенные объекты, а глубокое создает новые экземпляры вложенных объектов.

Пример:

java
class Person implements Cloneable {
    String name;
    Address address;

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone(); // поверхностное копирование
    }
}
  • clone() по умолчанию делает поверхностное копирование.
  • Для глубокого клонирования нужно переопределить clone() и клонировать вложенные объекты вручную.
  • Копирование через конструктор или фабричные методы дает больше контроля, чем clone().
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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