Back to questions
Junior — Middle
74
Объясните понятие поверхностного копирования объекта и в чем его особенности
Companies where asked
Передовые Платежные Решения
Answer from AI
sobes.tech AI
Поверхностное копирование (shallow copy) объекта в Java создаёт новый объект, но при этом поля-объекты внутри копируются не полностью, а лишь копируются ссылки на них. То есть, вложенные объекты не дублируются, а остаются общими между оригиналом и копией.
Особенности поверхностного копирования:
- Быстрое создание копии объекта.
- Изменения в вложенных объектах будут видны и в оригинале, и в копии, так как они ссылаются на одни и те же объекты.
- Подходит, если объект содержит только примитивные типы или если вложенные объекты не изменяются.
Пример поверхностного копирования с помощью метода clone():
class Person implements Cloneable {
String name;
Address address; // вложенный объект
public Person clone() throws CloneNotSupportedException {
return (Person) super.clone(); // поверхностное копирование
}
}
class Address {
String city;
}
// При клонировании Person создаётся новый объект Person, но поле address будет ссылаться на тот же объект Address.
Если нужно полностью независимое копирование, используют глубокое копирование (deep copy).