Sobes.tech
Назад к вопросам
Junior — Middle
99

Какие методы копирования объектов в Java тебе известно?

Компании, где спрашивали
AstonAston

Ответ от нейросети

sobes.tech AI

В Java существуют два основных способа копирования объектов:

  1. Поверхностное копирование (shallow copy) — копируются только примитивные поля и ссылки на объекты, на которые ссылается исходный объект. При этом вложенные объекты не клонируются, а копируются ссылки на них. Обычно реализуется через метод clone() из интерфейса Cloneable.

  2. Глубокое копирование (deep copy) — создаётся полный независимый клон объекта, включая все вложенные объекты. Для этого часто пишут собственные методы копирования или используют сериализацию/десериализацию.

Пример поверхностного копирования с использованием clone():

class Person implements Cloneable {
    String name;
    int age;

    public Person clone() throws CloneNotSupportedException {
        return (Person) super.clone();
    }
}

Для глубокого копирования можно, например, реализовать метод, который вручную копирует все поля, создавая новые объекты для вложенных ссылок.