Какие знаешь методы класса Object

«Какие знаешь методы класса Object» — вопрос из категории Java, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

equals() – проверяет равенство объектов (по умолчанию сравнивает ссылки).
hashCode() – возвращает хеш-код объекта (используется в HashMap, HashSet).
toString() – строковое представление объекта (по умолчанию: ClassName@hashCode).
getClass() – возвращает Class объекта (метаданные: поля, методы и т.д.).
wait(), notify(), notifyAll() – методы для работы с многопоточностью (синхронизация).
finalize() – вызывается перед удалением GC (устарел, не рекомендуется использовать).
clone() – создает копию объекта (требует имплементации Cloneable).

Пример переопределения equals() и hashCode():

@Override
public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    MyClass obj = (MyClass) o;
    return Objects.equals(field1, obj.field1);
}

@Override
public int hashCode() {
    return Objects.hash(field1);
}

Видео-ответы