и посмотреть медиа
Тестировщик | Вопросы собесов
и посмотреть медиа
Вопросы собеседований для тестировщиков.
Вопросы собеседований для тестировщиков.
AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.
Вопросы по тестированию: ISTQB, Selenium, API. С примерами.
🤔 Какие знаешь методы копирования объектов? В Java есть глубокое и поверхностное копирование объектов. Разберем основные способы их реализации. 🚩Поверхностное копирование (`shallow copy`) При поверхностном копировании копируются только ссылки на вложенные объекты, а не сами объекты. То есть если изменить вложенный объект, он изменится и в оригинале. 🚩Способы поверхностного копирования 🟠Метод `clone()` (реализация `Cloneable`) Чтобы использовать clone(), класс должен реализовать интерфейс Cloneable, а метод clone() нужно переопределить. class Person implements Cloneable { String name; int age; Person(String name, int age) { this.name = name; this.age = age; } @Override protected Object clone() throws CloneNotSupportedException { return super.clone(); // Поверхностное копирование } } public class Main { public static void main(String[] args) throws CloneNotSupportedException { Person p1 = new Person("Alice", 30); Person p2 = (Person) p1.clone(); // Копируем объект System.out.println(p1.name.equals(p2.name)); // true (строка хранится в пуле) System.out.println(p1 == p2); // false (это разные объекты) } } 🟠Конструктор копирования Можно создать новый объект, передав в конструктор другой объект. class Person { String name; int age; Person(String name, int age) { this.name = name; this.age = age; } // Конструктор копирования Person(Person other) { this.name = other.name; this.age = other.age; } } 🚩Глубокое копирование (`deep copy`) При глубоком копировании создаются новые объекты, а не просто копируются ссылки. 🟠Реализация `clone()` с ручным копированием вложенных объектов Если в объекте есть другие объекты, их нужно клонировать вручную. class Address implements Cloneable { String city; Address(String city) { this.city = city; } @Override protected Object clone() throws CloneNotSupportedException { return new Address(this.city); // Создаем новый объект! } } class Person implements Cloneable { String name; int age; Address address; Person(String name, int age, Address address) { this.name = name; this.age = age; this.address = address; } @Override protected Object clone() throws CloneNotSupportedException { Person cloned = (Person) super.clone(); cloned.address = (Address) address.clone(); // Глубокое копирование return cloned; } } Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаТолько зарегистрированные пользователи могут делиться своим мнением.
Станьте первым, кто поделится своим впечатлением об этом ресурсе!