Vergleichsoperator, der sowohl Basistypen als auch Referenztypen bestimmen kann
Wenn Sie den Basistyp bestimmen, bestimmen Sie, ob die Werte gleich sind
Wenn Sie bestimmen der Referenztyp. Beurteilen Sie dann, ob die Adressen gleich sind, das heißt, ob es sich um dasselbe Objekt handelt.
public boolean equals(Object obj) { return (this == obj); }
Andere Datentypklassen überschreiben jedoch die Methode equal, z als Umschreiben der String-Klasse: (Bestimmen, ob die Werte zweier Strings gleich sind)
public boolean equals(Object anObject) { if (this == anObject) { return true; } return (anObject instanceof String aString) && (!COMPACT_STRINGS || this.coder == aString.coder) && StringLatin1.equals(value, aString.value); }
Beispiel:
String str1 = new String("hello"); String str2 = new String("hello"); System.out.println(str1 == str2); // false System.out.println(str1.equals(str2)); // true
2.hashCode
Verbesserung der Effizienz von Containern mit Hash-Strukturen
Wenn zwei Referenzen zeigen Für dasselbe Objekt müssen die Hash-Werte gleich sein (ohne Konflikt) und umgekehrt.
Jetzt schreiben wir die toString-Methode (Vorlage) in der Klasse neu:
// hashCode A a = new A(); A a1 = new A(); A a2 = a; System.out.println(a.hashCode()); System.out.println(a1.hashCode()); System.out.println(a2.hashCode()); ------------------------------
Führen Sie das Obige noch einmal aus. Der Code gibt jetzt Folgendes aus:
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
Außerdem wird die toString-Methode direkt aufgerufen, wenn wir das Objekt direkt ausgeben Standardmäßig:
// toString A a3 = new A("dahe",25,"安全服务工程师"); System.out.println(a3.toString());
Ausgabe:
A{name='dahe', age=25, job='Security Service Engineer'}
4.finalize
Hinweis: In JDK18. finalize ist veraltet. Obwohl es uns helfen kann, die zugrunde liegenden Ressourcen des Systems proaktiv freizugeben, habe ich es ehrlich gesagt noch nie verwendet. Wenn es nicht hilfreich ist, führt dies zu einer automatischen Speicherverwaltung Daher ist die Entfernung geplant.
Beispiel:
@Override public String toString() { return "A{" + "name='" + name + '\'' + ", age=" + age + ", job='" + job + '\'' + '}'; }
Überschreiben Sie die Finalisierungsmethode:
A{name='dahe', age=25, job='安全服务工程师'}
Darüber hinaus können Sie den Garbage Collector auch aktiv ausführen:
System.out.println(a3);
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Java-Objektklasse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!