[Java] Der verwirrende Teil von String und StringBuilder

Vergleich von String und StringBuilder


System.out.println(new StringBuilder("abc")); //=> abc
System.out.println(new StringBuilder("abc").toString()); //=> abc

System.out.println("abc".equals(new StringBuilder("abc"))); //=> false
System.out.println("abc".equals(new StringBuilder("abc").toString())); //=> true

String und StringBuilder werden nicht vererbt oder implementiert, und die equals-Methode der String-Klasse wird wie folgt überschrieben.


/**
     * Compares this string to the specified object.  The result is {@code
     * true} if and only if the argument is not {@code null} and is a {@code
     * String} object that represents the same sequence of characters as this
     * object.
     *
     * <p>For finer-grained String comparison, refer to
     * {@link java.text.Collator}.
     *
     * @param  anObject
     *         The object to compare this {@code String} against
     *
     * @return  {@code true} if the given object represents a {@code String}
     *          equivalent to this string, {@code false} otherwise
     *
     * @see  #compareTo(String)
     * @see  #equalsIgnoreCase(String)
     */
    public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String aString = (String)anObject;
            if (coder() == aString.coder()) {
                return isLatin1() ? StringLatin1.equals(value, aString.value)
                                  : StringUTF16.equals(value, aString.value);
            }
        }
        return false;
    }

Recommended Posts

[Java] Der verwirrende Teil von String und StringBuilder
Ich habe versucht, die Methoden von Java String und StringBuilder zusammenzufassen
[Java] Über String und StringBuilder
[Java] Umgang mit Zeichenketten (String-Klasse und StringBuilder-Klasse)
[Java] Schneiden Sie einen Teil der Zeichenfolge mit Matcher und regulären Ausdrücken aus
Die Geschichte des einfachen String-Vergleichs in Java
[Java] Vergleich von Zeichenketten und && und ||
[Java] Ermittelt die Länge der Ersatzpaarzeichenfolge
[Hinweis] Java: Messen Sie die Geschwindigkeit der Zeichenfolgenverkettung
Ich habe die Eigenschaften von Java und .NET verglichen
Bitte beachten Sie die Aufteilung (Aufteilung) von Java Kotlin Int und Int
Der Vergleich von enum ist == und gleich ist gut [Java]
Den aktuellen Status von Java organisieren und die Zukunft betrachten
Java-Sprache aus der Sicht von Kotlin und C #
Bis zur Verwendung von Spring Data und JPA Part 2
[Java] Über Objects.equals () und Überprüfung des String-Vergleichs (== und gleich)
Bis zur Verwendung von Spring Data und JPA Part 1
Ich habe die Typen und Grundlagen von Java-Ausnahmen zusammengefasst
Ersetzen Sie nur einen Teil des URL-Hosts durch Java
Java und Iterator Teil 1 Externe Iterator Edition
Apache Hadoop und Java 9 (Teil 1)
Vor- und Nachteile von Java
[Hinweis] Java Ausgabe der Summe von ungeraden und geraden Elementen
Ich habe das Verhalten von Java Scanner und .nextLine () nicht wirklich verstanden.
JSON in Java und Jackson Teil 1 Gibt JSON vom Server zurück
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
Befehl zum Überprüfen der Anzahl und des Status von Java-Threads
Das n-te und n + 1-Zeichen einer Ruby-Zeichenfolge
Java-Anfänger fassten das Verhalten von Array und ArrayList kurz zusammen
[Java] Versuchen Sie, die Elemente der Json-Zeichenfolge mithilfe der Bibliothek zu bearbeiten
[Java] Löschen Sie die angegebene Anzahl von Zeichen am Ende von StringBuilder
[Einführung in Java] Umgang mit Zeichenfolgen (String-Klasse, StringBuilder-Klasse)
[Java] Ich habe über die Vorzüge und Verwendungen von "Schnittstelle" nachgedacht.
[Java] Geschwindigkeitsvergleich der Zeichenfolgenkombination
[Java] Löschen Sie die Elemente von List
Ändern Sie nur einen Teil des Textes
Verschiedene Methoden der Java String Klasse
Über Biocontainer fastqc und Java
Grundlegende Verwendung von Java Optionaler Teil 1
Dies und das von JDK
StringBuffer- und StringBuilder-Klasse in Java
Verschiedene Methoden der String-Klasse
Java 8 studieren (String Joiner und Join)
[Java] Korrekter Vergleich des String-Typs
Ich habe die Quelle von String gelesen
[Java] Unterschied zwischen StringBuffer und StringBuilder
Der Ursprung von Java-Lambda-Ausdrücken
[Java] Verschiedene Zusammenfassungen an die Leiter von Klassen und Mitgliedern
[Java] Ordnen Sie die Daten des vergangenen Montags und Sonntags der Reihe nach an
Die Geschichte, das Verhalten von String durch Passieren von Java nicht zu kennen
Informationen zur Beziehung zwischen dem Java String Equality Operator (==) und der Initialisierung. Anfänger
Lesen Sie die ersten 4 Bytes der Java-Klassendatei und geben Sie CAFEBABE aus
[Java] Angemessene Einführung durch Tenpa-Leute Java Teil 0 (Code-Regeln)
Vom jungen Java (3 Jahre) bis zu Node.js (4 Jahre). Und der Eindruck, nach Java zurückzukehren
[Java] So konvertieren Sie vom Typ String in den Pfadtyp und erhalten den Pfad
So überprüfen Sie den Inhalt der Java-Zeichenfolge mit fester Länge
Implementieren wir die Bedingung, dass der Umfang und das Innere der Ougi-Form in Java enthalten sind [Teil 2]
Implementieren wir die Bedingung, dass der Umfang und das Innere der Ougi-Form in Java enthalten sind [Teil 1]
Holen Sie sich das Ergebnis von POST in Java
Überprüfen Sie den Inhalt des Java-Zertifikatspeichers