Drag steps to the numbered slots on the right, or tap a step then tap a slot.
1Z0-829 Utilizing Java Object-Oriented Approach Practice Question
Arrange the steps to override equals() and hashCode() correctly in Java.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
Override equals() with @Override, check identity (==), check null/class, cast, compare fields, override hashCode() with @Override, use Objects.hash() with same fields
equals() and hashCode() must be consistent: if two objects are equal, they must have the same hash code. Use Objects.hash() for hashCode().
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✓
Override equals() with @Override, check identity (==), check null/class, cast, compare fields, override hashCode() with @Override, use Objects.hash() with same fields
Why this is correct
This order ensures the equals() and hashCode() contract: reflexive, symmetric, transitive, consistent; and that equal objects have equal hash codes.
- ✗
Override hashCode() with @Override and Objects.hash(), then override equals() with @Override, check identity, cast, compare fields (skip type/null check)
Why it's wrong here
This order may compile but violates the contract because skipping the type/null check in equals() can cause ClassCastException or inconsistent results. Also, defining hashCode() before equals() risks inconsistency if fields are not finalized.
- ✗
Override equals() with @Override, check identity, cast directly compare fields, override hashCode() with @Override using random values
Why it's wrong here
Missing the type/null check can lead to ClassCastException. Using random values for hashCode() breaks the contract: equal objects would have different hash codes, causing issues in hash-based collections.
- ✗
Override equals() with @Override, check identity, check type, override hashCode() with @Override and Objects.hash(), then cast and compare fields
Why it's wrong here
The casting and field comparison must occur inside equals() before the method ends. Placing hashCode() in between is syntactically invalid and conceptually wrong—it breaks the structure of the equals() method.
Go deeper
Related to this question
About these practice questions
This 1Z0-829 question is part of Courseiva's 513-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This 1Z0-829 practice question is part of Courseiva's free Oracle certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the 1Z0-829 exam.