Клонирование позволяет создавать копию объекта.
Поверхностное (shallow) клонирование: Копируется сам объект, но поля-ссылки указывают на те же объекты, что и в оригинале. Изменения в одном из ссылочных объектов будут видны в другом. Реализуется по умолчанию методом Object.clone()
.
Глубокое (deep) клонирование: Создается полная копия объекта и всех объектов, на которые указывают его поля-ссылки. Изменения в копиях не затрагивают оригиналы. Требует ручной реализации или использования библиотек (например, Apache Commons Lang SerializationUtils.clone()
).
Для клонирования объекта класс должен реализовывать интерфейс Cloneable
.
java
Массивы в Java являются объектами и могут быть клонированы методом clone()
. Для примитивных массивов это всегда глубокое клонирование. Для массивов объектов - поверхност
Клонирование позволяет создавать копию объекта.
Поверхностное (shallow) клонирование: Копируется сам объект, но поля-ссылки указывают на те же объекты, что и в оригинале. Изменения в одном из ссылочных объектов будут видны в другом. Реализуется по умолчанию методом Object.clone()
.
Глубокое (deep) клонирование: Создается полная копия объекта и всех объектов, на которые указывают его поля-ссылки. Изменения в копиях не затрагивают оригиналы. Требует ручной реализации или использования библиотек (например, Apache Commons Lang SerializationUtils.clone()
).
Для клонирования объекта класс должен реализовывать интерфейс Cloneable
.
java
Массивы в Java являются объектами и могут быть клонированы методом clone()
. Для примитивных массивов это всегда глубокое клонирование. Для массивов объектов - поверхност
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.