TGViewer
Java | Вопросы собесов Java | Вопросы собесов @easy_java_ru · 11.3K subscribers
Post #976 3.37K
🤔 Что такое модификатор default equals и hashcode?

Модификаторы доступа в Java определяют уровень доступа к классам, методам и переменным. Однако, если говорить о equals и hashCode в контексте модификаторов, то мы имеем в виду их реализацию по умолчанию, предоставляемую классом java.lang.Object.

🚩Реализация

🟠Метод `equals` по умолчанию
Метод equals в классе Object по умолчанию проверяет, являются ли два объекта одним и тем же экземпляром. Это проверка на ссылочное равенство.
public boolean equals(Object obj) {
return (this == obj);
}


🟠Метод `hashCode` по умолчанию
Метод hashCode в классе Object по умолчанию возвращает уникальный целочисленный идентификатор для каждого объекта. Этот идентификатор обычно представляет собой адрес объекта в памяти.
public native int hashCode();


🚩Когда нужно переопределять

Переопределение методов equals и hashCode необходимо, когда вы хотите, чтобы два различных объекта были равны, если их состояния равны, а не если они являются одним и тем же объектом.

public class Person {
private String name;
private int age;

public Person(String name, int age) {
this.name = name;
this.age = age;
}

@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Person person = (Person) obj;
return age == person.age && Objects.equals(name, person.name);
}

@Override
public int hashCode() {
return Objects.hash(name, age);
}

public static void main(String[] args) {
Person p1 = new Person("Alice", 25);
Person p2 = new Person("Alice", 25);

System.out.println(p1.equals(p2)); // true
System.out.println(p1.hashCode() == p2.hashCode()); // true
}
}


Ставь 👍 и забирай 📚 Базу знаний
  • 🔥 18
More from @easy_java_ru
  1. Oct 9, 2026🤔 Что такое «HTML»? HTML (HyperText Markup Language) — это язык разметки, используемый дл…
  2. Oct 9, 2026🤔 В чём различие между LeftJoin , RightJoin и InnerJoin? LEFT JOIN, RIGHT JOIN и INNER JO…
  3. Oct 8, 2026Post #2955
  4. Oct 8, 2026🤔 Что такое поток "демон"? Демон-поток — это поток, который: - Работает на фоне (например…
  5. Oct 7, 2026🤔 Может ли Entity-класс быть абстрактным? Да, Entity может быть абстрактным, если он служ…
  6. Oct 7, 2026🤔 К какой категории сущности относится Primary Key? Primary Key (первичный ключ) в базах…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →