Встречается на собеседованиях • сегодня
Как сделать глубокую копию объекта
В Java для глубокого копирования объекта можно использовать:
- Ручное копирование через конструктор или метод:
java
public class Person implements Cloneable {
private String name;
private Address address;
@Override
public Person clone() {
try {
Person cloned = (Person) super.clone();
cloned.address = this.address.clone(); // рекурсивное копирование
return cloned;
} catch (CloneNotSupportedException e) {
throw new AssertionError();
}
}
}- Сериализация/десериализация:
java
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(original);
ObjectInputStream ois = new ObjectInputStream(
new ByteArrayInputStream(baos.toByteArray()));
Object deepCopy = ois.readObject();- Использование библиотек (Apache Commons, Gson, Jackson):
java
Person copy = new Gson().fromJson(new Gson().toJson(original), Person.class);Важно: все вложенные объекты тоже должны поддерживать копирование. Для простых структур подойдет сериализация, для сложных - ручное копирование.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы