Heim > Java > javaLernprogramm > Hauptteil

So verwenden Sie die Java-Objektklasse

WBOY
Freigeben: 2023-05-13 17:13:14
nach vorne
1462 Leute haben es durchsucht

    1.equals-Methode

    == Operator

    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);
    }
    Nach dem Login kopieren

    Das ist in der Objektklasse deutlich zu erkennen. Die Methode equal dient dazu, festzustellen, ob die Adressen der Objekte gleich sind (ob es sich um dasselbe Objekt handelt).

    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);
    }
    Nach dem Login kopieren

    Beispiel:

    String str1 = new String("hello");
    String str2 = new String("hello");
    System.out.println(str1 == str2); // false
    System.out.println(str1.equals(str2)); // true
    Nach dem Login kopieren

    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.

    ha Der Hash-Wert kommt von der Adresse, aber nicht von der Adresse 990368553 1629346

    Paketname.Klassenname@Hex-HashCode

    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());
    ------------------------------
    Nach dem Login kopieren

    Führen Sie das Obige noch einmal aus. Der Code gibt jetzt Folgendes aus:

    public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
    Nach dem Login kopieren

    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());
    Nach dem Login kopieren

    Ausgabe:

    A{name='dahe', age=25, job='Security Service Engineer'}

    4.finalize

    Wenn das Objekt recycelt wird, ruft das System automatisch das auf finalize-Methode des Objekts. Unterklassen können diese Methode überschreiben und einige Vorgänge ausführen, um Ressourcen freizugeben.

    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 + '\'' +
                '}';
    }
    Nach dem Login kopieren

    Überschreiben Sie die Finalisierungsmethode:

    A{name='dahe', age=25, job='安全服务工程师'}
    Nach dem Login kopieren

    Darüber hinaus können Sie den Garbage Collector auch aktiv ausführen:

    System.out.println(a3);
    Nach dem Login kopieren

    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!

    Verwandte Etiketten:
    Quelle:yisu.com
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage