Junior
Ce știi despre clasa Object?
sobes.tech AI
Răspuns de la AI
java.lang.Object este clasa de bază în ierarhia claselor Java. Fiecare clasă moștenește implicit de la Object.
Metode principale:
equals(Object obj): Compară obiectul curent cu alt obiect pentru egalitate. În mod implicit, compară referințele.hashCode(): Returnează codul hash al obiectului. Este utilizat în colecții bazate pe tabele hash (de exemplu,HashMap,HashSet). Dacă două obiecte sunt egale conformequals(), codurile lor hash trebuie să fie identice.toString(): Returnează o reprezentare în șir de caractere a obiectului. În mod implicit, returnează numele clasei +@+ codul hash în format hexazecimal. De obicei, este suprascris pentru a oferi o reprezentare mai informativă.getClass(): Returnează un obiectClasscare reprezintă clasa obiectului în timpul execuției.notify(): Reia execuția unui fir de execuție care așteaptă pe monitorul acestui obiect.notifyAll(): Reia execuția tuturor firelor de execuție care așteaptă pe monitorul acestui obiect.wait()/wait(long timeout)/wait(long timeout, int nanos): Face ca firul de execuție curent să aștepte până când alt fir de execuție apeleazănotify()saunotifyAll()pe acest obiect sau până expiră timpul specificat. Poate fi apelat doar din blocuri sau metode sincronizate.clone(): Creează și returnează o copie a acestui obiect. Necesită implementarea interfețeiCloneable.finalize(): Este apelat de colectorul de gunoi înainte de eliminarea obiectului. Nu este recomandat din cauza imprevizibilității.
Exemplu de suprascriere a equals() și hashCode():
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 o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age &&
Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
Clasa Object oferă mecanisme fundamentale necesare pentru funcționarea obiectelor în Java, precum compararea, hash-ul, sincronizarea firelor și obținerea informațiilor despre clasă.