Sobes.tech
Junior — Middle
139

Какие методы копирования объектов в Java тебе известно?

Сұралған компаниялар
AstonAston

AI-дан жауап

sobes.tech AI

Java-да объектілерді көшірудің екі негізгі тәсілі бар:

  1. Жарық көшірме (shallow copy) — тек негізгі өрістер мен объектілерге сілтемелерді көшіріп, нақты объектілерді көшірмейді. Сілтемелер бірдей қалады, яғни, бір объектінің өзгерісі басқаға әсер етеді. Әдетте, Cloneable интерфейсінің clone() әдісі арқылы жүзеге асырылады.

  2. Терең көшірме (deep copy) — объектінің толық тәуелсіз көшірмесін жасайды, барлық ішкі объектілерді де көшіріп, жаңа объектілер құрады. Бұл көбінесе арнайы көшірме әдістерін жазу немесе сериализация/десериализация қолдану арқылы жүзеге асады.

Мысал — clone() қолдану арқылы жарық көшірме:

class Person implements Cloneable {
    String name;
    int age;

    public Person clone() throws CloneNotSupportedException {
        return (Person) super.clone();
    }
}

Терең көшірме үшін, барлық өрістерді қолмен көшіретін әдіс жазуға немесе сериализацияны қолдануға болады.