Heim  >  Artikel  >  Java  >  Einführung in String, StringBuffer und StringBulider

Einführung in String, StringBuffer und StringBulider

零下一度
零下一度Original
2017-06-23 09:32:291460Durchsuche

Alle drei implementieren die CharSequence-Schnittstelle, sodass CharSequence als String-Protokollschnittstelle betrachtet werden kann

1 Die String-Klasse ist eine unveränderliche Klasse, das heißt, sobald ein String-Objekt erstellt wird, bleibt der darin enthaltene Inhalt erhalten Dieses Objekt Die Zeichenfolge in ist unveränderlich, bis das Objekt zerstört wird.

Wenn wir häufig String str=new String("Define me");

str="Changed Me";

Die Ausgabe hat sich anscheinend geändert. Tatsächlich wurde die Ausrichtung von str geändert. Die ursprünglichen Objekte im Heap-Speicher sind zu Müll geworden

2 🎜>

StringBuffer stellt einen String mit einer variablen Zeichenfolge dar. Nachdem ein StringBuffer erstellt wurde, kann der String über die Methoden insert(), append(), reverse(), serChaAt() und setLength() geändert werden. Schließlich kann es nach der Generierung über die toString()-Methode

3 in ein String-Objekt umgewandelt werden. StringBuilder ist neu in JDK1.5 und stellt ebenfalls ein String-Objekt dar. Die Konstruktoren und Methoden von Die beiden Klassen sind auch grundsätzlich gleich, StringBuffer war zu diesem Zeitpunkt threadsicher und StringBulider implementierte keine Thread-Sicherheit, sodass die Leistung etwas höher war. Wenn Sie daher ein Zeichenfolgenobjekt mit variablen Zeichen erstellen, sollten Sie der StringBuilder-Klasse Vorrang geben

Vergleich

1 Die drei haben hinsichtlich der Ausführungsgeschwindigkeit die folgende Beziehung:

StringBuilder>StringBuffer> String;


2.: Erstens ist die Länge erweiterbar, zweitens ist StringBuffer threadsicher und StringBuilder ist threadunsicher. Wie werden ihre Längen dynamisch erweitert und wie wird die Thread-Sicherheit von StringBuffer implementiert?

Alle drei implementieren die CharSequence-Schnittstelle, sodass CharSequence als String-Protokollschnittstelle betrachtet werden kann

Alle Methoden in StringBuffer mit Ausnahme der Konstruktionsmethode sind durch synchronisiert begrenzt

Die beiden erweiterbaren Längen werden von secureCapacity(int MinimumCapacity) überprüft, um zu überprüfen, ob die aktuelle Länge kleiner als der Parameter MinimumCapacity ist. Wenn true, wird Speicherplatz zugewiesen. Die Schrittgröße für die Zuweisung neuen Speicherplatzes beträgt das Zweifache (aktuelle Länge + 1).

Das obige ist der detaillierte Inhalt vonEinführung in String, StringBuffer und StringBulider. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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