Junior
42
questionbank

Что ты знаешь о классе Object?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

java.lang.Object является корневым классом в иерархии классов Java. Каждый класс неявно наследуется от Object.

Основные методы:

  • equals(Object obj): Сравнивает текущий объект с другим объектом на равенство. По умолчанию сравнивает ссылки.
  • hashCode(): Возвращает хеш-код объекта. Используется в коллекциях, основанных на хеш-таблицах (например, HashMap, HashSet). Если два объекта равны по equals(), их hashCode() должны быть одинаковы.
  • toString(): Возвращает строковое представление объекта. По умолчанию возвращает имя класса + @ + хеш-код в шестнадцатеричном формате. Чаще всего переопределяется для предоставления более информативного представления.
  • getClass(): Возвращает объект Class, представляющий класс объекта во время выполнения.
  • notify(): Возобновляет выполнение одного потока, ожидающего на мониторе этого объекта.
  • notifyAll(): Возобновляет выполнение всех потоков, ожидающих на мониторе этого объекта.
  • wait() / wait(long timeout) / wait(long timeout, int nanos): Заставляет текущий поток ожидать до тех пор, пока другой поток не вызовет методы notify() или notifyAll() для этого объекта или не истечет указанное время. Вызывается только из синхронизированных блоков или методов.
  • clone(): Создает и возвращает копию этого объекта. Требует реализации интерфейса Cloneable.
  • finalize(): Вызывается сборщиком мусора перед удалением объекта. Не рекомендуется к использованию из-за непредсказуемости выполнения.

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

java

Класс Object обеспечивает фундаментальные механизмы, необходимые для работы объектов в Java, такие как сравнение, хеширование, синхронизация потоков и получение информации о классе.