Java object class and explain every method . The Object class stands at the top of Java’s class hierarchy, serving as its foundational base. This means that every class in Java is directly or indirectly derived from Object . Here’s an explanation of the methods provided by the Object class:
- equals(Object obj) :
- Purpose : Compares this object with another object for equality.
- Usage : Typically overridden in subclasses to compare object fields.
- Example : java
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
// Compare fields for equality
}
2. hashCode() :
- Purpose : Returns a hash code value for the object.
- Usage : Important for hash-based collections like HashMap .
- Example : java
public int hashCode() {
return Objects.hash(field1, field2, …);
}
3. function toString() :
- Purpose : Returns a string representation of the object.
- Usage : Useful for debugging and logging.
- Example : java
public String toString() {
return “ClassName{” +
“field1=” + field1 +
“, field2=” + field2 +
‘}’;
}
4. getClass() :
- Purpose : Returns the runtime class of this object.
- Usage : Allows checking the actual type of an object at runtime.
- Example : java
Class clazz = obj.getClass();
5. clone() :
- Purpose : Creates and returns a copy of the object.
- Usage : Requires implementing Cloneable interface and overriding clone() method.
- Example : java
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
6. finalize() :
- Purpose : Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
- Usage : Rarely overridden; typically not relied upon due to unpredictability of when it’s called.
- Example : java
protected void finalize() throws Throwable {
// Cleanup code
}
7. notify() , notifyAll() , wait() :
- Purpose : Methods for concurrent programming and inter-thread communication.
- Usage : Used in synchronization and concurrency scenarios.
- Example : java
synchronized void someMethod() throws InterruptedException {
while (condition) {
wait(); // Release lock and wait until notified
}
// …
notify(); // Notify waiting threads
}
These methods provide fundamental behavior for all Java objects. Depending on your needs, you might override some of these methods to customize the behavior of your classes.