Встречается на собеседованиях • сегодня
Какие знаешь способы клонировать объект
В Java есть несколько способов клонирования объектов:
-
Реализация интерфейса
Cloneableи переопределение методаclone()javaclass MyClass implements Cloneable { @Override protected Object clone() throws CloneNotSupportedException { return super.clone(); // поверхностное копирование } } -
Использование конструктора копирования
javaclass MyClass { private int value; public MyClass(MyClass other) { this.value = other.value; // глубокое копирование } }
-
Сериализация/десериализация (глубокое копирование)
javaByteArrayOutputStream 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(); -
Библиотеки (Apache Commons, Gson и др.)
java// Apache Commons MyClass copy = SerializationUtils.clone(original);
Важно:
Cloneableтребует осторожности — по умолчаниюclone()делает поверхностное копирование.- Для глубокого копирования нужно вручную клонировать вложенные объекты.
- Сериализация работает только с
Serializable-объектами.

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