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

Как скопировать объект в Java

В Java есть несколько способов копирования объектов:

  1. Поверхностное копирование (Shallow Copy) - копируются только примитивные поля и ссылки на объекты:
java
MyClass copy = original; // простое присваивание
// или через clone()
MyClass copy = original.clone();
  1. Глубокое копирование (Deep Copy) - создаются новые объекты для всех полей-объектов:
java
// Через конструктор копирования
public MyClass(MyClass original) {
    this.field1 = original.field1;
    this.field2 = new FieldType(original.field2);
}

// Через сериализацию
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(original);
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bais);
MyClass copy = (MyClass) ois.readObject();

text

3. **Библиотечные решения**:
- Apache Commons `SerializationUtils.clone()`
- Gson/Jackson для сериализации-десериализации

Выбор метода зависит от требований к производительности и глубины копирования.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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